home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 4 / Amiga Tools 4.iso / text+faqs / amigafaq / amigafaq.doc next >
Text File  |  1996-02-26  |  146KB  |  3,317 lines

  1.   Amiga-FAQ
  2.   *********
  3.   
  4.      This document lists some frequently asked questions and tries to
  5.   give answers.  Its intention is to help new users and to reduce the
  6.   amount of news that most experienced users don't like to read anymore.
  7.   
  8.      Please notice that there are many questions that aren't answered yet,
  9.   even more: Whole sections that remain empty! I feel that I cannot give
  10.   satisfying answers. So it's your turn: Fill the gaps and tell me what i
  11.   should include into this document!
  12.   
  13.  
  14.   Disclaimer
  15.  
  16.   1 CPU, Custom chips, RAM and other stuff
  17.     1 What are 68EC020, 68EC030 and 68LC040?
  18.     2 What's an FPU?
  19.     3 Can I use a 3.5' HD in my A1200?
  20.  
  21.   2 The Operating System
  22.     1 Can I use another Kickstart than the builtin?
  23.     2 The Graphical User Interface
  24.     3 What is MUI?
  25.       1 Icon collections and Backgrounds
  26.     4 What is the Amiga equivalent of . (Current directory)?
  27.     5 The PIPE: queue-handler
  28.       1 Using PIPE: in a standard AmigaShell environment
  29.       2 The Pipe command
  30.       3 Pipe command support in AmigaShell
  31.       4 Quick usage guide
  32.       5 Related things
  33.       6 Troubleshooting
  34.     6 ARexx, the program control language
  35.  
  36.   3 How about Graphics?
  37.     1 What are chunky and planar displays?
  38.     2 What is doublebuffering?
  39.     3 What monitors will work on my Amiga 1200/4000?
  40.     4 How do I switch between PAL and NTSC?
  41.  
  42.   4 Programming
  43.     1 What documentation do I need as an Amiga programmer?
  44.     2 What is CATS?
  45.     3 Where do I get the Amiga includes?
  46.     4 How do I become a developer?
  47.     5 What compilers (assemblers) are there?
  48.     6 Those never working Esc sequences!
  49.     7 Is it possible to use AmigaBasic on the A1200?
  50.     8 How do I localize my program?
  51.     9 How to obtain a pointer to a console's window
  52.     10 What are pragmas?
  53.     11 My Compiler/Linker is complaining about missing symbol xxx.
  54.     12 Where do I find the function xxx?
  55.     13 The GNU C compiler: general information and installation
  56.       1 Current Version
  57.       2 Requirements
  58.       3 Authors
  59.       4 Sources for Gcc
  60.       5 Inline Headers
  61.       6 Amiga Libraries
  62.       7 Installation
  63.       8 Compiling
  64.       9 How to get help
  65.  
  66.   5 Applications
  67.     1 Text Editors
  68.     2 What word processors are there?
  69.     3 Desktop Publishing
  70.     4 What is TeX and where can I get it?
  71.     5 Are there any Postscript interpreters?
  72.       1 Amiga Font Formats
  73.       2 Frequently Requested Amiga Fonts
  74.       3 Commercial Font Sources
  75.       4 Non-Latin fonts on the Amiga
  76.       5 Amiga Font Installation
  77.       6 Amiga Font Utilities
  78.       7 Making Outline Fonts
  79.       8 Problems and Possible Solutions
  80.     6 How to deal with Non-Latin texts?
  81.       1 Japanese editors and viewers
  82.       2 Chinese text viewers
  83.  
  84.   6 Connecting your Amiga to the world
  85.  
  86.   7 Emulators
  87.     1 Can I run Unix on my Amiga?
  88.     2 Is it possible to use the Amiga as X11 terminal?
  89.     3 Is there a way to start MS-Dos programs?
  90.     4 How to mount MsDos-formatted Syquests on Amiga
  91.  
  92.   8 Miscellaneous
  93.     1 Is there any unix version of LhA?
  94.     2 What are files ending with ...?
  95.     3 Is there a Stacker-like utility to pack my hard drive?
  96.     4 Where do I get Fish disk xxx?
  97.  
  98.   9 Where and how do I get software and other informations?
  99.     1 Files and databases on freely distributable software
  100.     2 A collection of tests
  101.     3 Getting files from a FTP server
  102.     4 Getting files from a Mail server
  103.     5 Getting files from a mailbox
  104.     6 The Fish PD series
  105.       1 The Amiga Library disks
  106.       2 The Fresh Fish CD-Roms
  107.     7 How do I Read and write MS-Dos disks?
  108.     8 How do I split large files?
  109.     9 Discussing things
  110.     10 Other FAQ's
  111.  
  112.   The Amiga-FAQ archive
  113.  
  114.   Contributions
  115.  
  116.   Credits
  117.  
  118.   Index
  119.  
  120.  
  121.  
  122.   Disclaimer
  123.   **********
  124.   
  125.      This document is
  126.   
  127.        Copyright (C)  Ignaz Kellerer
  128.                        Georg-Habel-Str. 11
  129.                  81241 Munich (Germany)
  130.                        Tel. (+49) 089 / 885147
  131.                        Internet: kellerer@informatik.tu-muenchen.de
  132.   
  133.      Permission is granted to make and distribute verbatim and modified
  134.   copies of this document following the terms of the "GNU General Public
  135.   License" provided the copyright notice and this permission notice are
  136.   preserved on all copies.
  137.   
  138.      The author gives *absolutely no* warranty that the answers given
  139.   here are correct or usable. Many of them were contributed by other users
  140.   and I cannot even make marginal checks. If you think that something
  141.   should be changed, please tell me. Suggestions, contributions, new
  142.   answers, critics, flames (oh, how I like this `nil:' :-) are rather
  143.   welcome.  See Contributions.
  144.   
  145.   1 CPU, Custom chips, RAM and other stuff
  146.   ****************************************
  147.   
  148.      This chapter contains questions concerning the Amiga-Hardware.
  149.   
  150.   1.1 What are 68EC020, 68EC030 and 68LC040?
  151.   ==========================================
  152.   
  153.      Motorola, the company producing the 680x0 family offers crippled
  154.   versions of their processors. They are a little bit cheaper than the
  155.   originals, that's why Commodore decided to build the 68EC020 into the
  156.   A1200 and the 68EC030 into the A4000/030.
  157.   
  158.      The difference between the 68020 and the 68EC020 is that the latter
  159.   can address just 16Mb of memory. That's why the A1200 cannot have more
  160.   that 10 Mb RAM. In most cases you will not notice the difference.
  161.   
  162.      This is not the case for the 68EC030: Many owners will notice that
  163.   the 68030 has an MMU and the 68EC030 doesn't have. There are some
  164.   important programs depending on an MMU, for example Enforcer (a
  165.   debugging utility), GigaMem (a program to emulate virtual memory) or
  166.   all current Unix versions (see Unix). Other Amigas than the A4000 and
  167.   the A3000 need an additional processor card using a 68030 or 68040 or
  168.   68060 to run these.
  169.   
  170.      Finally the 68LC040 is a 68040 without FPU. See FPU.
  171.   
  172.   1.2 What's an FPU?
  173.   ==================
  174.   
  175.      The first 680x0 processors (upto 68030) could process integers only.
  176.   Floating point operations had to be emulated by the software. An FPU is
  177.   a chip (or part of a chip) that can process floating point operations, a
  178.   mathematical coprocessor.
  179.   
  180.      One separates three FPU types on the Amiga: The 68881, 68882 and the
  181.   68040's internal FPU. The 68882 is up to 1.5 times faster than the
  182.   68881, because it is splitted in two parts: A conversion unit (the
  183.   FPU's are using an 80 bit format internally) and the arithmetic unit.
  184.   The 68040's internal FPU adds a pipeline, but misses the trigonometric
  185.   instructions of the others. These are still emulated by the software,
  186.   68040.library for example.
  187.   
  188.      Special programs (Raytracing, DTP, Mathematics, TeX) are offered in a
  189.   special coprocessor version which are up to 50 times faster than the
  190.   original versions.
  191.   
  192.      Michael Kaiser (kaiser@ira.uka.de)
  193.   
  194.   1.3 Can I use a 3.5' HD in my A1200?
  195.   ====================================
  196.   
  197.      Many people would prefer to use a 3.5" instead of the smaller 2.5"
  198.   drives as the former are much cheaper. This is possible, but you need a
  199.   special cable to connect the drive to your IDE controller. Additionally
  200.   you should put some isolating material between the drive and the main
  201.   board. Some people report termic problems but I did not notice anything.
  202.   
  203.      Some dealers offer a set which contains the cable, isolating material
  204.   and for about 20$. See the magazines for more information.
  205.   
  206.      Thomas Schuh (thomas@stepout.tynet.sub.org)
  207.   
  208.      If you are going to install an IDE-harddisk, regardless if 2.5" or
  209.   3.5", you should always consider that the it may not work flawlessly,
  210.   if the drive and ROM-version have not been tested and approved by
  211.   Commodore. Regarding the A1200, one should also remember that this
  212.   Amiga has not been designed to hold 3.5" harddisk drives. The 2.5"
  213.   drives, which are mainly thought for portable computers, may have some
  214.   advantages (for example in power consumption, heat emission or shock
  215.   resistance) that could pay off because of the small keyboard case of
  216.   the A1200 and the limited power supply. With the larger 3.5" drives,
  217.   ventilation inside the computer might also be disturbed. If it is
  218.   necessary to remove some shielding inside the A1200 to make the drive
  219.   fit inside, even radio interference may occur.
  220.   
  221.      To sum it up: if 3.5" harddisk drives could really be used in the
  222.   A1200 without any problems, you could be sure Commodore themselves
  223.   wouldn't have used the slightly more expensive 2.5" drives in the
  224.   A1200-HD.
  225.   
  226.   2 The Operating System
  227.   **********************
  228.   
  229.      This chapter handles questions concerning the operating system,
  230.   Kickstart as well as the Workbench.
  231.   
  232.   2.1 Can I use another Kickstart than the builtin?
  233.   =================================================
  234.   
  235.      First let's drop some words on the Kickstart's Copyright: This
  236.   belongs to Commodore, you *must not* use Kickstarts, without the right
  237.   to do it!  Especially it isn't allowed to make an image of anyone
  238.   else's Kickstart and run this on your own Amiga. (I even doubt that it
  239.   is allowed to do this on your own Amigas, if you have more than one.)
  240.   
  241.      But of course it is possible and allowed for some people, developers
  242.   for example.  There are two different ways, a hardware solution and a
  243.   software solution.  The former is to buy a card which can hold two or
  244.   more Kickstart ROMS and allows to select between when the System is
  245.   booting.
  246.   
  247.      The software solution needs a program (softkicker) and an image of
  248.   the ROM. The softkicker allocates RAM, loads the ROM image into the
  249.   allocated memory and reboots. Of course you have less RAM after the
  250.   Reboot: 256Kb when running Kickstart 1.2 or 1.3 and 512Kb for Kickstart
  251.   2.0 or higher.
  252.   
  253.      There are different Softkickers, some of them needing a MMU (see
  254.   68EC0xx). I recommend SKick 3.43 (Aminet, directory `util/boot')
  255.   because it doesn't need a MMU and supports many different Kickstarts.
  256.   It is rather easy to create the ROM image using the following program:
  257.   
  258.            #include <stdio.h>
  259.        
  260.            #define kickorig 0xf80000   /*  0xfc0000 for Kick 1.2 und 1.3   */
  261.            #define kicklen  0x080000   /*  0x040000 for Kick 1.2 und 1.3   */
  262.        
  263.            void main(int argc, char*argv[])
  264.            {
  265.                FILE *fh;
  266.        
  267.                if ((fh = fopen("kickstart.file", "w"))  !=  NULL) {
  268.                    result = fwrite(kickorig, kicklen, 1, fh);
  269.                }
  270.                fclose(fh);
  271.            }
  272.   
  273.   2.2 The Graphical User Interface
  274.   ================================
  275.   
  276.      Die standardmäßig mitgelieferte Oberfläche "Workbench" ist nur die
  277.   Grundlage zum Aufbau einer guten, angenehmen Oberfläche.
  278.   
  279.      Zu diesem Zweck gibt es zahlreiche Tools, die den Anwendern das
  280.   Leben erleichtern.  Einige von diesem findet man auf dem Aminet in den
  281.   Verzeichnissen `util/#?/'.
  282.   
  283.   2.3 What is MUI?
  284.   ================
  285.   
  286.      MUI is a set of shared libraries which are used to build a
  287.   comfortable GUI (`Graphical user interface'). The general idea of MUI
  288.   is that the programmer determines only the logical structure of the GUI
  289.   and the look (Font, Size, Windows on Workbench, Public Screen, own
  290.   Screen, ...) is determined by the user only. From the programmers point
  291.   of view using MUI is simpler than `gadtools.library' but much more
  292.   powerful. On the other hand MUI interfaces are slower than
  293.   GadTools-Interfaces, especially on old 68000 machines.
  294.   
  295.      MUI is found in two archives, one for developers only and one for
  296.   users. Source: Aminet, `dev/misc'.
  297.   
  298.   2.3.1 Icon collections and Backgrounds
  299.   --------------------------------------
  300.   
  301.      The standard icons aren't beautiful, indeed.  But there do exist
  302.   some beautiful icon collections.  I know of `MagicWB' and `NewIcons'.
  303.   
  304.      `MagicWB' is Shareware. The icons are drawn beautiful in pastel with
  305.   every known trick. You also get a lot of good backgrounds which
  306.   beautify workbench windows and MUI programs.  Fine and good readable
  307.   fonts replace the clumsy topaz8 font.  You also get good icons for the
  308.   ToolManager.  You can find a test version of MagicWB on Aminet.
  309.   
  310.      `NewIcons' is Freeware. The icons do have relative intensive colors
  311.   and are drawn as three dimensional objects floating slanted in space.
  312.   You can find NewIcons on Aminet, `util/wb/NewIcons.lha'.
  313.   
  314.   *F:*
  315.        How do I turn off the "Gag" of MagicWorkbench (the intro which
  316.        appears sometimes during booting)?
  317.   
  318.   *A:*
  319.        In S: should be a file called `mti.data'. Delete it.
  320.   
  321.   *F:*
  322.        How can I create NewIcons?
  323.   
  324.   *A:*
  325.        The author of NewIcon currently works on an IconEd. Until then,
  326.        Iconian 2.9x (I3) is the only way to create NewIcons.
  327.   
  328.   *F:*
  329.        How can I prevent MagicWorkbench Icons to appear in incorrect
  330.        colors?
  331.   
  332.   *A:*
  333.        Register MagicWB 2.0, it contains a tool which patches the palette,
  334.        or get one of the different tools from Aminet.
  335.   
  336.   *MagicColors*
  337.   *ShoveColors*
  338.        Its a good program, you can find it in Iconian, PictIcon or
  339.        `Aminet:util/wb/').
  340.   
  341.   2.4 What is the Amiga equivalent of . (Current directory)?
  342.   ==========================================================
  343.   
  344.      The AmigaDOS equivalent for the . representing the current directory
  345.   on Unix and certain non-reentrant interrupt handlers is the empty
  346.   string, which is written as "".
  347.   
  348.      Example:
  349.            COPY S:Startup-Sequence ""
  350.   
  351.   copies your Startup-Sequence to the current directory.
  352.   
  353.      There is some FD software available to patch a Unix-like
  354.   interpretation of . and .. into the AmigaDOS, including, but not
  355.   limited to, Martin Scott's UnixDirs. (Aminet,
  356.   `os20/util/UnixDirsII.lha' or Fish-disk 837)
  357.   
  358.      Arno Eigenwillig (arno@yaps.dinoco.de)
  359.   
  360.   2.5 The PIPE: queue-handler
  361.   ===========================
  362.   
  363.      In the AmigaOS release 2.04, a new handler for passing data between
  364.   programs was introduced. This handler is called `L:Queue-Handler',
  365.   better known as the `PIPE:' device.
  366.   
  367.      `PIPE:' implements a true `pipe' familiar from UNIX systems.  Its
  368.   function is to pass the output of one program to another program as
  369.   input. You can chain several programs together using multiple pipes.
  370.   
  371.      The advantages of using pipes are:
  372.     1. No need for a lot of RAM to keep the temporary files, or, no need
  373.        to slow things down by storing temporary files on the HD.
  374.   
  375.     2. Faster operation since the intermediate data doesn't need to be
  376.        stored anywhere between programs.
  377.   
  378.      The `PIPE:' device differs from the UNIX pipes in two important
  379.   respects:
  380.     1. It is a device, so the input and output of the programs doesn't
  381.        need to be a redirected standard output, although that is the
  382.        general case. You can also use `PIPE:' instead of files, with two
  383.        restrictions; you can not read a directory from `PIPE:', and the
  384.        `PIPE:' `file' can not be `seeked' in.
  385.   
  386.     2. It does not support a flush operation. If all of the data written
  387.        in a `PIPE:' device is not read out, it will stay there, buffered.
  388.        Thus you must always `empty' a pipe before closing it.
  389.   
  390.     3. Because of the above, if unread data exceeds the size of the
  391.        `PIPE:' internal buffer, the program writing to the pipe will
  392.        `block' (that is, suspend operation) until the data is read. See
  393.        below on how to manually flush a pipe.
  394.   
  395.      The PIPE: handler name syntax is `PIPE:name/bufsize/bufnum', where
  396.   `name' is the name for the pipe channel. Using names you can have
  397.   several simultaneous pipe operations. The optional arguments
  398.   `bufsize'and `bufnum' specify the size and number of the buffers used
  399.   by `PIPE:'. Normally, you would just use `PIPE:name'.
  400.   
  401.      The default buffer size of `PIPE:' is 4096 bytes, and the number of
  402.   buffers (ie. channels) is unlimited.
  403.   
  404.      Osma Ahvenlampi (Osma.Ahvenlampi@hut.fi)
  405.   
  406.   2.5.1 Using PIPE: in a standard AmigaShell environment
  407.   ------------------------------------------------------
  408.   
  409.      First, make sure `PIPE:' is mounted. You can do this by giving the
  410.   command
  411.            1> Mount PIPE:
  412.   
  413.   in a Shell window. On an AmigaOS 2.1+ system, `PIPE:' is normally
  414.   mounted on startup by placing the mount entry file `PIPE' in the drawer
  415.   `DEVS:DosDrivers'.
  416.   
  417.      In an AmigaShell window, give the commands:
  418.            1> Run List SYS: >PIPE:Listoutput
  419.            1> More <PIPE:Listoutput
  420.   
  421.   (1)
  422.   
  423.      These two commands list the contents of the `SYS:' volume to a pipe
  424.   and then type it in the Shell window. You could also use:
  425.            1> Run List SYS: NOHEAD >PIPE:Listoutput
  426.            1> Run Sort PIPE:Listoutput PIPE:Sortedoutput
  427.            1> More <PIPE:Sortedoutput
  428.   
  429.   Notice that you need to `Run' all the programs except for the last one.
  430.   This is so that you can get them all running simultaneously. You could
  431.   also use several Shell windows, or any other way of running all the
  432.   programs at the same time. Also this might not work if `More' isn't the
  433.   standard Commodore AmigaOS 2.04+ More found in `SYS:Utilities'.
  434.   
  435.      In case you need to manually flush a pipe, for example because the
  436.   program that was reading from it aborts prematurely, it can be done
  437.   with the command:
  438.            1> Type PIPE:name TO NIL:
  439.   
  440.      ---------- Footnotes ----------
  441.   
  442.      (1)  Note that `1>' is the prompt AmigaShell gives when it is
  443.   waiting for a command. The number varies, and the prompt can be
  444.   customised to look completely different. It is not a part of the
  445.   command.
  446.   
  447.   2.5.2 The Pipe command
  448.   ----------------------
  449.   
  450.      As you can see, this is a somewhat difficult way of using pipes,
  451.   needing a lot of typing especially compared to the UNIX pipes. There is
  452.   a solution for that.
  453.   
  454.      Andy Finkel, a former Commodore software engineer wrote a command
  455.   called `Pipe' (not to be confused with `PIPE:') that simplifies the use
  456.   of the `PIPE:' device. Unfortunately, this command did not make it into
  457.   the 2.04 release. However, Commodore has given the permission to
  458.   distribute this, and a few other commands, freely. (Sources: Fish disk
  459.   673, Aminet, `util/cli/finkelshelltools.lha')
  460.   
  461.      For some reason Commodore did not include these commands in the later
  462.   OS releases, although they work fine even with OS 3.1 (V40). Thus all
  463.   users are required to get them from the above sources if they wish to
  464.   use them.
  465.   
  466.      The Pipe command usage is simple. The commands to be run with their
  467.   inputs and outputs piped together are given as arguments to the
  468.   command, separated by the | (vertical bar) character:
  469.   
  470.            1> Pipe List SYS: | More
  471.                or
  472.            1> Pipe List: SYS: NOHEAD | Sort IN: OUT: | More
  473.   
  474.   Notice how Sort needs `IN:' and `OUT:'. These devices don't actually
  475.   exist, but the Pipe command simulates them with the PIPE:. This is
  476.   necessary because C:Sort can not use the `standard IO', but insists on
  477.   files.
  478.   
  479.      The separator character | can be configured to be something else
  480.   with the local variable __PCHAR.
  481.   
  482.   2.5.3 Pipe command support in AmigaShell
  483.   ----------------------------------------
  484.   
  485.      There is a little known and quite useful undocumented feature built
  486.   in the 2.04+ AmigaShell, that is, AmigaShell knows about the `Pipe'
  487.   command. By setting the local variable _PCHAR, you can use pipes
  488.   without even entering the Pipe command. AmigaShell will prepend it on
  489.   the command line automatically if it sees the pipe separator command
  490.   specified by _pchar on the command line.
  491.   
  492.      Thus, after the command:
  493.            1> Set _pchar "|"
  494.   
  495.   (1)
  496.   
  497.      the above examples can be used like this:
  498.            1> List SYS: | More
  499.                or
  500.            1> List SYS: NOHEAD | Sort IN: OUT: | More
  501.   
  502.      Those familiar with the UNIX pipes will notice how the usage is very
  503.   similar to the UNIX pipe usage.
  504.   
  505.      ---------- Footnotes ----------
  506.   
  507.      (1)  The quotes around the vertical bar are important, to avoid
  508.   AmigaShell interpreting the command as an attempt to use PIPE:, if
  509.   _PCHAR is already set (for example if the Shell is started from within
  510.   another one).
  511.   
  512.   2.5.4 Quick usage guide
  513.   -----------------------
  514.   
  515.     1. Get the ShellTools archive from the Fish disk 673, or from Aminet,
  516.        `util/cli/hacks204.lha'.
  517.   
  518.     2. Install the commands in this archive in your Shell search path,
  519.        preferably C:.
  520.   
  521.     3. Put the command `Set _pchar |' in your `S:Shell-Startup' file.
  522.   
  523.     4. Restart your AmigaShell so that it reads the `S:Shell-Startup'.
  524.   
  525.     5. Try `List SYS: | More'
  526.   
  527.     6. Read the ShellTools documentation and experiment.
  528.   
  529.   2.5.5 Related things
  530.   --------------------
  531.   
  532.      The variable _mchar is used to separate one command from another in
  533.   a shell line.  So, after the command:
  534.            1> Set _mchar ";"
  535.      you can put more shell commands into the same line, separated from
  536.   each other by `;'.
  537.   
  538.   2.5.6 Troubleshooting
  539.   ---------------------
  540.   
  541.   *Q:*
  542.        When I try the command `List SYS: | More' I get an error
  543.                 PIPE: Unknown command
  544.   
  545.        I have `PIPE:' mounted, what's wrong?
  546.   
  547.   *A:*
  548.        AmigaShell is referring to the command `Pipe' in the error, not the
  549.        `PIPE:' device. You haven't installed the commands in the
  550.        ShellTools archive.
  551.   
  552.   *Q:*
  553.        I get a requester that says
  554.                 Please insert volume PIPE: in any drive
  555.   
  556.        when I try any of the command examples.
  557.   
  558.   *A:*
  559.        `PIPE:' is not mounted. Try `Mount PIPE:'. If that doesn't work,
  560.        refer to your AmigaDOS manual or a friend that knows how to mount
  561.        devices.
  562.   
  563.   *Q:*
  564.        When I try any of the examples the More window pops up but nothing
  565.        is shown/I get an error afterwards/More pops up a file requester.
  566.   
  567.   *A:*
  568.        You are not using the standard AmigaOS `More' command. Either use
  569.        another name or install a command that supports pipes.
  570.        Possibilities are the C= More, Less, or Most for example.
  571.   
  572.   *Q:*
  573.        With use of PIPE:, sometimes characters get lost. What happened?
  574.   
  575.   *A:*
  576.        Up to OS 3.1, the queue-handler has some bugs which don't allow a
  577.        really foolproof transmission of data.  A compatible replacement
  578.        for the queue-handler can be founbd on Aminet,
  579.        `util/sys/HWGQueue.lha'.
  580.   
  581.   *Q:*
  582.        None of these happen but it still doesn't work as you described.
  583.   
  584.   *A:*
  585.        Are you using OS 2.04 later? Are you using the standard AmigaShell?
  586.        Try with all extras disabled.
  587.   
  588.   2.6 ARexx, the program control language
  589.   =======================================
  590.   
  591.   *Q:*
  592.        I want to send an ARexx command through CLI or through a shell
  593.        script, but that (rx ADDRESS PORTNAME;COMMAND) doesnt work.
  594.   
  595.   *A:*
  596.        You have to put quotation marks. (rx "ADDRESS PORTNAME;COMMAND").
  597.        It also prevents upcasing the portname when it should be lowercase.
  598.   
  599.   3 How about Graphics?
  600.   *********************
  601.   
  602.      Graphics is one of the major strengths of the Amiga. Why don't we
  603.   have more answers here? :-(
  604.   
  605.   3.1 What are chunky and planar displays?
  606.   ========================================
  607.   
  608.      Simply put, the terms `chunky' and `planar' (short for `bitplanar')
  609.   refer to different ways of storing graphics information in a computer's
  610.   memory. They are rather easy to understand, as far as things go, but
  611.   incredibly difficult to explain:
  612.   
  613.      Computer images are arranged as a grid of pixels, each of which can
  614.   be thought of as a number representing the color number of the pixel,
  615.   sort of like a paint-by-numbers scheme.  For example, here's a
  616.   simplified example image, in four colors:
  617.   
  618.           00302132
  619.   
  620.      The Amiga stores this image in a `bitplane' mode. That is, it is
  621.   represented by several planes of bits (binary digits, 1s or 0s). This
  622.   is a four-color image, so each color number could be represented by two
  623.   bits.  Therefore there are two bitplanes:
  624.   
  625.           00100110    Here's bitplane 0
  626.           00101011    And here's bitplane 1
  627.           --------    Now, let's add them up, binary style:
  628.           00302132
  629.   
  630.      Which is the final image. If the image was in two dimensions, it
  631.   would truly be composed of bit planes. However, I'd need three
  632.   dimensions to show multiple bitplanes overlayed, and therefore for
  633.   simplicity we're working in one dimension (which is all we need).
  634.   
  635.      Now, there's another way of storing this image.  How about if we
  636.   localize the bit data in little chunks?
  637.   
  638.           00 00 11 00 01 10 11 01 = 00302132
  639.   
  640.      This is the principle of the `chunky' pixel mode.
  641.   
  642.      Both methods of image storage are perfectly logical, and no one can
  643.   say that one is better than the other. However, there are certain
  644.   technical aspects which cause certain advantages and disadvantages.
  645.   
  646.      First, if you've seen colored text scroll on your Amiga, you know
  647.   there is a bit of "flicker" that arises. Specifically, what happens is
  648.   that while the text is scrolling, its color temporarily changes to
  649.   something completely different. What's happening is that the computer's
  650.   moving several bitplanes of data while the raster (monitor electron
  651.   gun) is sweeping across the screen. What that means is that, if the
  652.   raster catches the data while it's being moved, you can end up with some
  653.   bitplanes being moved and some not. What if we filled bitplane 1 in the
  654.   example above with 0s? Instantly all the 3s become 1s, and the 2s
  655.   become 0s! This is what causes "flicker" when certain colors are
  656.   scrolled. By contrast, if a chunky pixel display is caught while
  657.   scrolling, all we see is a partially-scrolled image; the colors are
  658.   preserved (since their units are the small ones).
  659.   
  660.      That's a disadvantage to planar pixels, but what about chunky pixels?
  661.   Well, recall that a computer organizes information in terms of 8 bit
  662.   bytes. These groups are static; you cannot decide to all of a sudden
  663.   organize data in terms of three bytes or something! Therefore, when
  664.   using chunky pixels, things get complicated if we decide to use a
  665.   nonconvenient number of bits per pixel. In practice, the 8-bit
  666.   (256-color) mode, and 24-bit (16 million color) modes are the most
  667.   common candidates for chunky pixel displays.
  668.   
  669.      Finally, certain effects can be accomplished with the different
  670.   systems.  Bitplanar mode is particularly useful for things like shadows
  671.   (where an extra bitplane is set with 1s instead of 0s), and chunky mode
  672.   is great for perspective and "mapping" (since the data for each pixel is
  673.   localized in a single "chunk"). The latter advantage makes chunky pixel
  674.   mode really great for games, and is what made Wolfenstein 3-D possible.
  675.   
  676.      We all know that Amigas use the bitplane system for storing images.
  677.   However, the Macintosh and PC(VGA) both use chunky pixel modes. While
  678.   we can optimize our RAM usage with "bizarre" modes like 8- and
  679.   128-color, they gain the advantages of non-flicker scrolling, and the
  680.   programming simplicity of just writing a byte where you want the pixel
  681.   to go.
  682.   
  683.      The difference between the two modes becomes problematic in things
  684.   like emulation. EMPLANT has a "chunky to planar" routine which it uses
  685.   to convert a Macintosh display into an Amiga one. "Chunky to planar"
  686.   routines are also useful for getting chunky-inclined things to run on
  687.   Amigas (see TMAPDemo, rotdemo). On a side note, there was some
  688.   confusion as to what EMPLANT used the MMU for with regard to chunky to
  689.   planar. The MMU itself is incapable of performing the algorithm for the
  690.   conversion; rather, it is used to detect what portions of the display
  691.   memory are updated from the Mac side, and therefore the processor is
  692.   saved from having to perform the chunky to planar conversion for the
  693.   entire display.
  694.   
  695.      I sincerely hope that helped clear up most of the mystery concerning
  696.   the terms "Chunky" and "Planar"!
  697.   
  698.      (Joseph Luk, jluc@eis.calstate.edu)
  699.   
  700.   3.2 What is doublebuffering?
  701.   ============================
  702.   
  703.      Don't be ashamed if you haven't a clue as to what this is. It's
  704.   rather simple, really. Imagine you wanted to animate something by
  705.   drawing out each frame. Now imagine you had only one piece of paper.
  706.   Even if you drew pretty fast, it would be difficult to see what the
  707.   animation looks like because you'd have to erase the frame you just
  708.   drew, in order to draw the next one!
  709.   
  710.      What if you had two pieces of paper? Why, then, you could see the
  711.   difference between two adjacent frames. First you'd draw your first
  712.   frame on the first piece of paper, then you'd draw the second frame on
  713.   the other piece.  Then you'd erase the picture on the first piece of
  714.   paper, and draw in the third frame. Then you'd erase the picture on the
  715.   second piece of paper, and draw in the fourth frame, and so forth.
  716.   
  717.      This is the principle of doublebuffering. The computer shows you the
  718.   picture it just drew, then turns around and draws the next one. It then
  719.   swaps the picture in front of you with the one it just drew, and
  720.   repeats the process. The result is a smooth animation, because you
  721.   never need to see the computer draw; all you see is each finished
  722.   product.
  723.   
  724.      (Joseph Luk, jluc@eis.calstate.edu)
  725.   
  726.   3.3 What monitors will work on my Amiga 1200/4000?
  727.   ==================================================
  728.   
  729.      Monitors can be classified after the horizontal scan frequency they
  730.   require.  TVs, as well as C='s 1084 monitor, need frequencies around 15
  731.   kHz. VGA/SVGA need approx. 30 kHz. Multisync monitors can take many
  732.   frequencies.
  733.   
  734.      In short: You can use any monitor you want with an A1200. BUT:
  735.   
  736.      - If you use a regular VGA/SVGA monitor, you can only use a few
  737.        display modes (like DblPAL, DblNTSC and/or Productivity). I.e.
  738.        (320|640) x (256|512|1024) for DblPAL. This is great for Workbench
  739.        and all "serious" utilities (DTP etc), but don't expect any games
  740.        to work... they don't use your preferences, just take over the
  741.        machine and assume a 15 kHz monitor. Also, you cannot utilize the
  742.        "Early Startup Control" screen (you know, disable cache, and that
  743.        stuff), which also requires a 15 kHz monitor. Furthermore, VGA
  744.        monitors don't have speakers. And the VGA-type modes don't support
  745.        Genlocks. But for a lot of "serious" work, a VGA monitor is quite
  746.        adequate.
  747.   
  748.      - You already know what happens with a 15 kHz monitor; the
  749.        flickering in Interlace mode. A small tip: Try to use NTSC instead
  750.        of PAL. This increases the refresh rate from 25 Hz to 30 Hz, at
  751.        the expense of lower vertical resolution (482 lines maximum). The
  752.        NTSC and PAL modes aren't as bad as many people think. If your
  753.        monitor has a lot of phosphorous (long afterglow), PAL Laced can
  754.        be quite OK, and it gives you a resolution of 1448x566 in
  755.        SuperHiRes. That's the highest resolution currently supported on
  756.        AGA Amigas, in _any_ display mode.
  757.   
  758.      - A Multisync gives you the best of both worlds. The 1940 and 1942
  759.        monitors from C= are quite OK, although rather cumbersome to
  760.        use... The h/v size and offset must be set manually each time you
  761.        switch display mode.  (1) The 1960 monitor doesn't have this
  762.        problem, but it's a bit more expensive.
  763.   
  764.      For a VGA/SVGA or Multisync monitor, you'd need a little shiny box
  765.   which gives you the standard 15-pin "D" connector. It costs around $15.
  766.   
  767.      There are other alternatives... like the "AmiVGA" box ($50 or so),
  768.   which I think is a cheapo version of the Flicker Fixer. (But it's
  769.   really a shame to use this on an AGA Amiga.)
  770.   
  771.      Also, you can get a VGA monitor, and hook up your TV to the
  772.   composite or RF port on the Amiga - one monitor for games, one for
  773.   serious stuff.
  774.   
  775.      (Per Espen Hagen, per.e.hagen@ffi.no)
  776.   
  777.      ---------- Footnotes ----------
  778.   
  779.      (1)  A patch is available on Aminet for Kickstart 3.0 to do this
  780.   without manual actions in the file `os30/util/Monitor30Patch.lha'.
  781.   
  782.   3.4 How do I switch between PAL and NTSC?
  783.   =========================================
  784.   
  785.      PAL and NTSC are two different video standards, the former being
  786.   European, and the latter being American. PAL has a slightly taller
  787.   screen (256 lines non-interlaced, non-overscanned) as opposed to NTSC
  788.   (200 lines), so if you see the bottom portion of a program's screen
  789.   getting cut off on your American machine, chances are the program was
  790.   written for PAL, and is running on your shorter NTSC screen. PAL and
  791.   NTSC differences are somewhat less important to European users; since
  792.   their machines default to PAL, running an NTSC program is no more than
  793.   a minor annoyance having the screen only appear in the top portion of
  794.   the display.
  795.   
  796.      Therefore, for us NTSC folks, switching into PAL mode becomes
  797.   important to avoid loss of some picture on Euro Demos, etc.
  798.   
  799.      First, the most common misconception about switching between PAL and
  800.   NTSC is that you need a Multiscan or special monitor for such a purpose.
  801.   Not so! Just about any monitor can handle the minor signal difference
  802.   between PAL and NTSC (50Hz vertical refresh versus 60Hz). The 108x,
  803.   19xx, and 20xx series, and even most TVs, can display both PAL and NTSC.
  804.   Sometimes it is necessary to perform minor tweaking of vertical hold
  805.   and/or v. size on your monitor to achieve full display, though this is
  806.   trivial.
  807.   
  808.      What IS needed to switch between PAL and NTSC in software, is a
  809.   "Fatter" (1MB) Agnus or better. If your system has more than 512K of
  810.   CHIP RAM (use the avail command to find out) you have this chip. If you
  811.   do not, ou can still construct a hardware switch (see below).
  812.   
  813.      The following directions assume you're an NTSC user who wants to
  814.   switch into PAL mode, but the procedure for going from PAL to NTSC is
  815.   much the same.
  816.   
  817.      The most common use of switching into PAL is for self-booting games,
  818.   demos, etc.  The best way to accomplish this on pre-3.0 systems is to
  819.   use Chris Hames' Degrader program (most recent version: 1.30). Once you
  820.   have procured this program, the switch is as simple as selecting
  821.   "50Hz", and "50Hz System", then installing the program's ROMTag (little
  822.   program that runs at boot-time) by pressing the "Survive Reset(s)"
  823.   button.
  824.   
  825.      AmigaDOS 3.0 added a PAL/NTSC switch feature to its Boot Menu, and
  826.   all you need to do in order to access this is hold down both mouse
  827.   buttons as the computer boots. Select Display Options, Display
  828.   Mode/PAL, and then Boot. If the program still fails to go into PAL mode
  829.   (Zool is one I've found), you may wish to get Degrader anyway and try
  830.   that.
  831.   
  832.      Software PAL/NTSC switching is easy and painless. Some people have
  833.   gone even further by installing hardware PAL/NTSC switches. This
  834.   results in a system which even the most nasty hardware-banging programs
  835.   can't bring to its original configuration (if it has been switched).
  836.   The procedure is simple - most Amigas have jumpers already - but beyond
  837.   the scope of this document.
  838.   
  839.      Therefore, if your screen is too short or cut off, seek the different
  840.   screen mode. You'll "see new horizons", literally!
  841.   
  842.      (Joseph Luk, jluc@eis.calstate.edu)
  843.   
  844.      (1)
  845.   
  846.      ---------- Footnotes ----------
  847.   
  848.      (1)  PAL/NTSC switching with a MultiSync monitor is possible on 2.0+
  849.   and easily accomplished by moving the PAL monitor type to (or NTSC, as
  850.   applicable, I have them both in) the Devs/Monitors drawer (from the
  851.   Storage/Monitors drawer), reboot, then go into the Prefs drawer and
  852.   select the ScreenMode program. You will see at least two PAL modes
  853.   available (PAL and PAL Interlaced). Simply select one of the (usually
  854.   non-interlaced for demos) and select "Use". All windows on the Workbench
  855.   will close, the video mode will change, and then the windows will
  856.   reopen - that simple!
  857.   
  858.      Allen J. Newton, anewton@alturia.abq.nm.us
  859.   
  860.   4 Programming
  861.   *************
  862.   
  863.      This chapter handles problems arising for programmers and
  864.   compiler-users only.
  865.   
  866.   4.1 What documentation do I need as an Amiga programmer?
  867.   ========================================================
  868.   
  869.      The best information available are the RKMs (ROM Kernel Manuals), 3rd
  870.   edition, by Commodore, published by Addison-Wesley:
  871.        The Amiga ROM Kernel Manual:  Libraries, ISBN 0-201-56774-1
  872.        The Amiga ROM Kernel Manual:  Devices, ISBN 0-201-56775-X
  873.        The Amiga ROM Kernel Manual:  Includes and Autodocs, ISBN
  874.                                                             0-201-56773-3
  875.        The Amiga Hardware Manual, ISBN 0-201-56776-8
  876.        The Amiga User Interface Style Guide, ISBN 0-201-57757-7
  877.   
  878.   Especially the RKM: Libraries is a must. The RKM: Includes and Autodocs
  879.   isn't that much worth: Better get the same stuff on disk instead to
  880.   have it online.  See Includes.
  881.   
  882.      AmigaDOS isn't included in these books. The Autodocs give much
  883.   information, but to go deeper you probably need
  884.        The AmigaDOS Manual, 3rd Edition, ISBN 0-553-35403-5
  885.      published by Bantam Books.
  886.   
  887.      A better choice for developers is
  888.        The Amiga Guru Book
  889.   
  890.   by Ralph Babel. The book starts with a survey on different aspects of
  891.   programming the Amiga. (About 250 pages) Useful for beginners are the
  892.   sections on the Amiga's data types (not to be confused with the 3.x
  893.   DataTypes used by MultiView, for example), the Includes and the
  894.   amiga.lib. But even experienced programmers will find useful things
  895.   here that are missing in the RKMs.  But the largest part are about 500
  896.   pages on AmigaDOS and, as I think, the most important, because AmigaDOS
  897.   is the worst officially documented part of the OS. The book is rather
  898.   concise and hence not as easy to read as the RKMs, but I recommend it
  899.   as an addition and instead of the AmigaDOS manual.  (Not, however, a
  900.   replacement for the Libraries and Devices, which aren't covered here.)
  901.   Unfortunately the book has no ISBN and is available in special stores
  902.   only. But there are some mail order companies which offer it for about
  903.   50$ and which accept credit cards:
  904.   
  905.                                    Almathera Systems Limited
  906.                                    Southerton House
  907.        NBG USA, Inc.               Boundary Business Court
  908.        482 Holly Avenue            92-94 Church Road
  909.        St. Paul, MN 55102          Mitcham, Surrey CR4 3TD
  910.        USA                         England
  911.        Voice: +1 (612) 290 9447    Voice: +44 181 687 0040
  912.        Fax:   +1 (612) 290 9449    Fax:   +44 181 687 0490
  913.                                    E-Mail: <almathera@cix.compulink.co.uk>
  914.        
  915.                                    Stefan Ossowskis Schatztruhe
  916.        Hirsch & Wolf OHG           Gesellschaft für Software mbH
  917.        Mittelstraße 33             Veronikastraße 33
  918.        D-56564 Neuwied             D-45131 Essen
  919.        Germany                     Germany
  920.        Voice: +49 (2631) 8399-0    Voice: +49 (201) 788778
  921.        Fax:   +49 (2631) 8399-31   Fax:   +49 (201) 798447
  922.                                    E-Mail: <stefano@tchest.e.eunet.de>
  923.        
  924.        Someware
  925.        27 rue Gabriel Péri
  926.        59186 Anor
  927.        France
  928.        Voice: +33 27596000
  929.        Fax:   +33 27595206
  930.        E-Mail: <didierj@swad.someware.com>
  931.      See FAQs.
  932.   
  933.   4.2 What is CATS?
  934.   =================
  935.   
  936.      This is a department at Commodore West Chester which was formerly
  937.   named `Commodore Amiga Technical Support' and was later renamed
  938.   `Commodore Application and Technical Support'. These are people that
  939.   work independently of Engineering, but close together with them, and try
  940.   to help developers outside of Commodore to create nice Amiga
  941.   applications, software or hardware. To achieve this, CATS has gathered
  942.   a lot of informations and tools, on floppy, CD, or paper. Much of this
  943.   material is also available to the general public. (1) But don't mix
  944.   this up with some sort of Hotline for everyone!
  945.   
  946.      For Americans the address to get this material is
  947.            CATS
  948.            Commodore Electronics Limited
  949.            950 Rittenhouse Road
  950.            Norristown, PA 19403
  951.   
  952.   for all Europeans it's a company in Germany:
  953.            Fa. Hirsch & Wolf
  954.            Mittelstr. 33
  955.            56564 Neuwied
  956.            Tel. 02631/83990
  957.   
  958.      Dr. Peter Kittel, peterk@cbmger.de.so.commodore.com
  959.   
  960.      ---------- Footnotes ----------
  961.   
  962.      (1)  Which means: For Non-Developers.
  963.   
  964.   4.3 Where do I get the Amiga includes?
  965.   ======================================
  966.   
  967.      The only legal way to get the includes and autodocs (and you *should*
  968.   get them, they are *very* useful!) is to become a developer (see
  969.   Developer) or to buy the `NDU' (Native developers update kit, also
  970.   known as `NDUK' or `NDK'), which is offered by CATS. They cost about
  971.   30$ plus shipping and this seems to me to be a fair price. See CATS.
  972.   The current version is 3.1.
  973.   
  974.      If you need only the includes, you could get them as well with a
  975.   compiler (commercial compilers only) or by getting the Fresh Fish CD.
  976.   See Fish CD.
  977.   
  978.   4.4 How do I become a developer?
  979.   ================================
  980.   
  981.      You need the `ADSP' (Amiga Developer Support Program) documents. To
  982.   get this write a letter to your local Commodore branch asking for these
  983.   documents.  Everything else should be explained there. The german
  984.   address (for the US address see CATS) is
  985.            Commodore
  986.            Lyoner Strasse 38
  987.            60528 Frankfurt
  988.      There are three different developer versions:
  989.   *Registered*
  990.        developers get access to the CBMNET (kind of a Commodore-internal
  991.        Usenet), which makes it possible to discuss problems with other
  992.        developers, Commodore engineers included. Registered developers
  993.        pay about US$80 per year, plus initial US$30 initially.
  994.   
  995.   *Certified*
  996.        developers seem to me the most interesting claass: They have the
  997.        possibility copy the most beta versions of the system software
  998.        (Kickstart and Workbench) and the respective Includes and
  999.        AutoDocs. (Not all beta versions and especially no beta hardware.)
  1000.        You pay about US$250 per year plus US$50 initially for this.
  1001.   
  1002.   *Commercial*
  1003.        developers finally have in most details the same as certified
  1004.        developers, but may expect to get more beta versions and sooner,
  1005.        included beta hardware (This has *not* always been so in the
  1006.        past.), hencethey pay about US$400 plus US$50 initially.
  1007.   
  1008.   The above describes the prices and the situation in Germany and might be
  1009.   different elsewhere. Especially not all Commodore branches offer the
  1010.   registered status. A hint is to build a group of users and become a
  1011.   developer group, so the costs are reduced.
  1012.   
  1013.      All developers have to sign non-disclosure agreements (`NDA') which
  1014.   specify that we may not discuss information outside of authorized areas
  1015.   even to other developers until given explicit permission by Commodore.
  1016.   
  1017.   4.5 What compilers (assemblers) are there?
  1018.   ==========================================
  1019.   
  1020.      There is a lot of programming languages on the Amiga, commercial as
  1021.   well as freely distributable. I will enumerate only those that I know
  1022.   or which seem it worth to me otherwise.
  1023.   
  1024.   *Assembler*
  1025.        All C-compilers have an Assembler included. Freely distributable
  1026.        are A68K and PhxAss (directory `dev/asm' on Aminet or Fish disks
  1027.        521 and 906)
  1028.   
  1029.        Commercial Assemblers are MaxonASM, OMA3.0 and DevPack3.14.
  1030.   
  1031.   *Basic*
  1032.        The following commercial Basic-compiler/interpreter are available:
  1033.        BlitzBasic2, Amos and MaxonBasic3.
  1034.   
  1035.   *C*
  1036.   *C++*
  1037.        Freely distributable C-compilers are `gcc' (which has its own
  1038.        directory `dev/gcc' on Aminet) and the evaluation version of
  1039.        `Dice' (for example per FTP from `ftp.uni-paderborn.de', directory
  1040.        `/news/comp.binaries.amiga/volume91/languages' or on Fish disk
  1041.        491).  The advantage of gcc is that you find gcc versions all over
  1042.        the world and on all computer systems. Another advantage is that
  1043.        C++ is included into gcc! But it is slow and needs 4Mb of RAM or
  1044.        more.  See The GNU C compiler.  See Mailing lists.
  1045.   
  1046.        Commercial C compilers are `Aztec-C', `Dice', `SAS/C' amd
  1047.        `MaxonC++'.  `Aztec-C' doesn't seem to get further development any
  1048.        more.  It should be remarked that the commercial compilers have
  1049.        especially wonderful debugging utilities (Source level debuggers!)
  1050.        that the others are missing.
  1051.   
  1052.        SAS has announced to drop support of the Amiga-Compiler, too, due
  1053.        to the Amiga's bad situation. However, the compiler is still
  1054.        available and up-to-date and has a crosscompiler included, which
  1055.        translates C++ to C and supports the source level debugger too.
  1056.        Considering the price of just 99$ for students and updates from
  1057.        recent versions or other compilers it is still the most
  1058.        recommendable of the three. In europe the compiler is available
  1059.        from
  1060.                 SAS Institute, Inc.           SAS Institute Gmbh
  1061.                 Book Sales                    PO Box 10 53 40
  1062.                 SAS Campus Drive              69043 Heidelberg
  1063.                 Cary, NC 27513                Germany
  1064.                 USA
  1065.             
  1066.                 Phone: (919)677-8000          Phone: (49)6221-4160
  1067.                 EMail: sasdsb@vm.sas.com      EMail: eurdoc2@vm.sas.com
  1068.   
  1069.        Dice is the cheapest and fastest commercial compiler. The greatest
  1070.        disadvantage of Dice (compared to the other commercial compilers)
  1071.        is the so-called Source-Line-Debugger: This means that you see the
  1072.        current line of source and can execute the program step by step,
  1073.        like with the other debuggers. On the other hand you can examine
  1074.        memory only, not the variables.  To get information about DICE,
  1075.        send email to info@oic.COM. An automatic system will return
  1076.        complete details, including upgrade prices.
  1077.   
  1078.        Comeau C++ is a crosscompiler like SAS/C++. That wouldn't be a
  1079.        problem, but Comeau C++ doesn't have a C compiler included.  You
  1080.        need SAS/C, Aztec-C or Dice additionally. But it is AT&T cfront 3.0
  1081.        compliant and supports exceptions. And like gcc it runs on many
  1082.        platforms.  Maxxon C++ is offered in Germany. I cannot say
  1083.        anything on it. Both compilers are commercial. Comeau's address is:
  1084.                 Comeau computing
  1085.                 91-34, 120th Street
  1086.                 Richmond Hill, NY, 11418-3214
  1087.                 USA
  1088.             
  1089.                 EMail: Greg Comeau, comeau@bix.com
  1090.   
  1091.        Maxon C++ is both a C++ and a C compiler. There is a light version
  1092.        and a developer version. The developer version matches the AT&T
  1093.        standard 3.0.  Maxon-light includes a compiler and a editor.
  1094.        Developer includes a source level debugger, Amiga classes library
  1095.        and Hot Help with documentation to the amiga libs.  It is a german
  1096.        product, and compiler and documentation are german.  The compiler
  1097.        has some little bugs, but you can work with it well, anyway.
  1098.   
  1099.   *Forth*
  1100.        JForth is said to be an excellent Amiga port of Forth. Among its
  1101.        advantages are object oriented extensions, full Amiga interface
  1102.        and an application generator. It is available from:
  1103.                 Delta Research
  1104.                 P.O. Box 151051
  1105.                 San Rafael, CA   94915-1051
  1106.             
  1107.                 Phone: (415) 453-4320
  1108.                 EMail: Phil Burk, phil@ntg.com
  1109.                        Mike Haas, haas@starnine.com
  1110.   
  1111.   *Fortran*
  1112.        (Sigh! Still people who need it :-<) Freely distributable are BCF
  1113.        (Fish disk 470) and f2c, a Fortran to C converter (Aminet,
  1114.        directory `/dev/lang'). A commercial compiler is offered from
  1115.        ABSoft. All these are Fortran 77 compilers, I don't know any
  1116.        Fortran 90 compiler on the Amiga.
  1117.   
  1118.   *Lisp*
  1119.        Freely distributable Lisp interpreters are XLisp (Fish disk 181)
  1120.        and OakLisp (Fish disks 519 and 520) and CLISP
  1121.        (`/pub/lisp/clisp/binaries/amiga' at the server `ftp
  1122.        ma2s2.mathematik.uni-karlsruhe.de'). Lisp compilers are Gambit
  1123.        (Fish 764 and 765) and Scheme-to-C (Fish disks 556, 557 and 558).
  1124.        See Mailing lists.
  1125.   
  1126.   *Prolog*
  1127.        `/dev/lang/UNSWProlog.lha' and `dev/lang/sbp3_1e.lha' on Aminet as
  1128.        well as `SBProlog' on Fish disk 141 and `SBProlog' on Fish disk
  1129.        145 are freely distributable Prolog interpreters.
  1130.   
  1131.   *Modula-2*
  1132.        M2Amiga is offered in Europe, Benchmark Modula-2 in the U.S. Both
  1133.        are said to be very good, have a powerful source-level-debugger, a
  1134.        large library.  Especially M2Amiga has great support by a german
  1135.        user-group (AMOK) which for example offers own PD disks. See
  1136.        Mailing lists.
  1137.   
  1138.        M2Amiga is offered by:
  1139.                 A+L AG
  1140.                 Daderiz 61
  1141.                 2540 Grenchen
  1142.                 Schweiz
  1143.             
  1144.                 Tel.: +41/65/52 03-11
  1145.                 Fax:              -79
  1146.   
  1147.        Benchmark Modula-2 is available from:
  1148.                 Armadillo Computing
  1149.                 5225 Marymount Drive
  1150.                 Austin, Texas 78723
  1151.                 USA
  1152.             
  1153.                 Phone/FAX: 512/926-0360.
  1154.                 EMail: Jim Olinger, jolinger@bix.com
  1155.   
  1156.   *Oberon*
  1157.   *Oberon-2*
  1158.        Two compilers (both Oberon-2) are available: AmigaOberon
  1159.        (commercial) is offered by the same company as M2Amiga. It is
  1160.        integrated into a full developers environment and has a large
  1161.        library of modules.  Library linker and  source level debugger are
  1162.        available.
  1163.   
  1164.        Oberon-A is a Freeware compiler. (Source: Aminet, `dev/obero'
  1165.        directory) However, this is a beta release, especially the module
  1166.        library is limited. See Mailing lists.
  1167.   
  1168.        The AMOK user group supports AmiOberon as well as M2Amiga.
  1169.   
  1170.        In addition to these two standalone compilers which are thought
  1171.        mainly for creating AmigaOS applications, there is an Amiga port of
  1172.        the Oberon Sytem V4, too. The Oberon System is implemented as an
  1173.        AmigaOS-Task using a separate screen and includes an Oberon-2
  1174.        compiler. You can use it to write software that will work on all
  1175.        implementations of the Oberon System V4 (for example Macintosh,
  1176.        Windows or Sparc) without any changes.
  1177.   
  1178.   *Pascal*
  1179.        There is a PD-compiler called PCQ (Directory `dev/lang' on Aminet
  1180.        or Fish disk 511). It doesn't support all of Pascal and major
  1181.        features are missing. P2C, a pascal to C converter is on disk 341.
  1182.        (Aminet: `/dev/misc/p2c120.lha') Additionally there are two
  1183.        commercial compilers called HiSoft Pascal and KickPascal. HiSoft
  1184.        Pascal and P2C claim to be compatible to Turbo Pascal up to 5.0.
  1185.        HiSoft has a source level debugger included.
  1186.   
  1187.   4.6 Those never working Esc sequences!
  1188.   ======================================
  1189.   
  1190.      Many printers come with a manual that explains which Esc sequence
  1191.   causes which action on the printer. But there happen weird things when
  1192.   you try to send these sequences to your printer, either it does
  1193.   nothing, or it does something completely different. There is a reason,
  1194.   the Amiga printer drivers. These drivers are made in a way that they
  1195.   only understand a certain set of `ANSI Esc sequences', not the special
  1196.   ones defined (differently) by the various printer manufacturers. The
  1197.   purpose is that every application on the Amiga just uses this one
  1198.   standard set of control sequences and this way doesn't need to know
  1199.   which printer is actually connected. The printer driver then translates
  1200.   these standard sequences into the special sequences a certain printer
  1201.   understands.  A list of the available ANSI Esc sequences is found in
  1202.   the current Workbench manuals (or older AmigaDOS manuals). Now if you
  1203.   want to issue a control sequence to the printer that's not available as
  1204.   an ANSI command, you have two possibilities to achieve this:
  1205.     1. Bypass the printer driver (that would unsuccessfully try to
  1206.        interpret the sequence) and send your output *only* during this
  1207.        sequence to `PAR:' (or `SER:', respectively). For this you have to
  1208.        close and open printer output channels very often which is rather
  1209.        tedious, and you have to know where (`PAR:' or `SER:') your
  1210.        printer is connected.
  1211.   
  1212.     2. Use a special ANSI sequence, made exactly for this case:
  1213.                 `Esc[<n>"<x>'
  1214.        where `<n>' is the decimally typed number of bytes in the string
  1215.        `<x>', which actually contains your special printer sequence. This
  1216.        ANSI sequence tells the printer driver to not interpret or
  1217.        translate the next `<n>' bytes.
  1218.           But both methods have one big disadvantage when used in an
  1219.   application program: You lose the printer independency! If you stick to
  1220.   ANSI sequen- ces, you can output to any printer on earth, as long as
  1221.   there is an Amiga printer driver for it. If you start to use special
  1222.   control sequences, your program will be tied to this single printer
  1223.   model and will not be usefull for any other (or you would have to
  1224.   provide some dozen new printer drivers for your application).
  1225.   
  1226.      Dr. Peter Kittel, peterk@cbmger.de.so.commodore.com
  1227.   
  1228.   4.7 Is it possible to use AmigaBasic on the A1200?
  1229.   ==================================================
  1230.   
  1231.      AmigaBasic wurde (als einziges Amiga-Programm) von Microsoft
  1232.   entwickelt und ist entsprechend fehlerhaft.
  1233.   
  1234.      Man kann es auf dem A1200 trotzdem zum Laufen bringen, wenn man
  1235.   folgendes beachtet:
  1236.   
  1237.     1. run NoFastMem (or turn off FastMem).
  1238.   
  1239.     2. Switch off sound output in the Sound prefs editor.
  1240.   
  1241.     3. Better avoid SUBs and use GOSUBs instead, then the compatibility
  1242.        with newer processors will be higher.
  1243.   
  1244.     4. There is a patch you should run at the beginning of AmigaBasic:
  1245.               ---------------------------------- CUT HERE -------------------------------
  1246.                `" AmigaBASIC patch to let AmigaBASIC work on A1200 and other newer machines.
  1247.                `" Start at the beginning of AmigaBASIC or invoke AmigaBASIC with this program
  1248.             
  1249.                OPEN "AMIGABasic" AS 1 LEN=1
  1250.                FIELD #1,1 AS d$
  1251.                i&=&HF3*256+&H87 : PRINT i&
  1252.                GET #1,i& : a$=HEX$(ASC(d$))
  1253.                PRINT a$
  1254.                IF a$="79" THEN
  1255.                    LSET d$=CHR$(&H78)
  1256.                    PUT #1,i&
  1257.                END IF
  1258.                CLOSE 1
  1259.               ---------------------------------- CUT HERE -------------------------------
  1260.   
  1261.      Andreas Mixich, humpty@tomate.tng.oche.de
  1262.   
  1263.   4.8 How do I localize my program?
  1264.   =================================
  1265.   
  1266.      Suggest, you want to write a `HelloLocalWorld.c'. Your final program
  1267.   will look like this:
  1268.   
  1269.            #include "HelloLocalWorld_Cat.h"
  1270.            #include <clib/exec_protos.h>
  1271.        
  1272.            struct Library *LocaleBase;
  1273.        
  1274.            void main(int argc, char *argv[])
  1275.        
  1276.            {
  1277.                /* Open the locale.library. No kill, if not successfull.
  1278.                   (Just use the builtin catalog strings instead.) Note, that
  1279.                   we open locale.library here, even if our compiler supports
  1280.                   AutoOpening.
  1281.                */
  1282.                LocaleBase = OpenLibrary("locale.library", 38);
  1283.                OpenHelloLocalWorldCatalogs(NULL, NULL);
  1284.        
  1285.                printf(GetString(MSG_Hello));
  1286.        
  1287.                CloseHelloLocalWorldCatalog();
  1288.                if (LocaleBase) CloseLibrary(LocaleBase);
  1289.            }
  1290.   
  1291.      The routine GetString checks, if the wished catalogs are available
  1292.   and returns a pointer to either the builtin string or the catalog
  1293.   string. (In my case the german string.)
  1294.   
  1295.      You see, the main difference besides the minor opening and closing
  1296.   stuff (OpenLibrary, OpenHelloLocalWorldCatalogs, ...) (which too can be
  1297.   dropped, too, with FlexCat) is to replace strings with a function call.
  1298.   Hence we need a file `HelloLocalWorld_Cat.c', which holds
  1299.   OpenHelloLocalWorld, GetString, CloseHelloLocalWorld and the builtin
  1300.   strings (this could be an array, where
  1301.                array[MSG_Hello] = "Hello, local world.\n";
  1302.   
  1303.   is defined) and an include file `HelloLocalWorld_Cat.h', which defines
  1304.   the message ID's like MSG_Hello. You don't need to know, how these files
  1305.   work internally, especially you don't need to know `locale.library'!
  1306.   
  1307.      There are some catalog generators (in what follows: CGs) available
  1308.   (`CatComp', for devlopers only, `KitCat', german docs only, `MakeCat',
  1309.   which I don't know and `FlexCat', which I  recommend, because it is
  1310.   most flexible in the generated source and supports catalogs on 2.0 and
  1311.   any language, even Amiga-E, Cluster, Pascal, ... and besides that: I'm
  1312.   the author ;-) are tools, that create  HelloLocalWorld_Cat.h,
  1313.   HelloLocalWorld_Cat.c and the real catalogs for you. (The above code
  1314.   might differ slightly between the different CGs.) (See Aminet, directory
  1315.   `dev/misc'.)
  1316.   
  1317.      Of course they need to know how to use them. First create a so-called
  1318.   `catalog-description' file. This could look like this:
  1319.            ; Lines beginning with a semicolon are comment lines.
  1320.            # language english
  1321.            ; the language of the builtin strings
  1322.            # version 0
  1323.            ; the catalog version (0 = any)
  1324.            MSG_Hello (1/15/30)
  1325.            Hello, local world
  1326.   
  1327.   Any string is defined by a line like the last two lines above: MSG_Hello
  1328.   is the message-ID, (1/15/30) says, that the value of MSG_Hello should be
  1329.   1 (you may omit this, in which case just the next free number is used)
  1330.   and the string must not be shorter than 15 characters or longer than 30
  1331.   characters. (These may be omitted too.)
  1332.   
  1333.      Now write your program. Once you are ready, use the CGs to create a
  1334.   so-called catalog translation file. (One for any language different than
  1335.   the builtin.) In my case (german) this could look like this:
  1336.            ; Lines beginning with a semicolon are comment lines.
  1337.            ## language deutsch
  1338.            ; the catalog language (german)
  1339.            ## version $VER: Deutsch.catalog 1.0 (22.12.93)
  1340.            ; the catalog files version string
  1341.            MSG_Hello
  1342.        
  1343.            ; Hello, local world
  1344.   
  1345.   Note the empty line after the message ID. (The arguments of ## language
  1346.   and ## version would be missing as well.) You have to fill in the
  1347.   german strings here. Again using the CGs you create a catalog file from
  1348.   this. Additionally note, that no informations on the strings ID or
  1349.   length are behind MSG_Hello.  They are taken from the catalog
  1350.   description file.
  1351.   
  1352.      Once you change the program (adding strings, changing the string
  1353.   length) you change the catalog description as well, use the CGs in the
  1354.   same way to update the catalog translation and hence the catalogs.
  1355.   
  1356.   4.9 How to obtain a pointer to a console's window
  1357.   =================================================
  1358.   
  1359.      The following function returns the window pointer of a CON window.
  1360.   It can be executed safely under all versions of the Amiga's OS.
  1361.   
  1362.          struct Window *getConWindowPtr(BPTR fh)
  1363.          {
  1364.            struct Window *w;
  1365.            struct FileHandle *cfh;
  1366.            struct StandardPacket *sp;
  1367.            struct InfoData *id;
  1368.            struct MsgPort *mp;
  1369.        
  1370.            w = NULL;
  1371.        
  1372.            if ((cfh = BADDR(fh))->fh_Type != NULL) {
  1373.              if (sp = AllocMem(sizeof (struct StandardPacket),
  1374.                                MEMF_PUBLIC | MEMF_CLEAR)) {
  1375.                if (id = AllocMem(sizeof (struct InfoData),
  1376.                                  MEMF_PUBLIC | MEMF_CLEAR)) {
  1377.                  if (mp = CreatePort(NULL, 0)) {
  1378.                    sp->sp_Msg.mn_Node.ln_Name = (char *) &sp->sp_Pkt;
  1379.                    sp->sp_Pkt.dp_Link         = &sp->sp_Msg;
  1380.                    sp->sp_Pkt.dp_Port         = mp;
  1381.                    sp->sp_Pkt.dp_Type         = ACTION_DISK_INFO;
  1382.                    sp->sp_Pkt.dp_Arg1         = MKBADDR(id);
  1383.        
  1384.                    PutMsg(cfh->fh_Type, &sp->sp_Msg);
  1385.                    (void) WaitPort(mp);
  1386.                    (void) GetMsg(mp);
  1387.        
  1388.                    if (sp->sp_Pkt.dp_Res1)
  1389.                      w = (struct Window *) id->id_VolumeNode;
  1390.        
  1391.                    DeletePort(mp);
  1392.                  }
  1393.                  FreeMem(id, sizeof (struct InfoData));
  1394.                }
  1395.                FreeMem(sp, sizeof (struct StandardPacket));
  1396.              }
  1397.            }
  1398.        
  1399.            return w;
  1400.          }
  1401.   
  1402.      Notes:
  1403.      * Accessing a console's window directly may interfere with operations
  1404.        performed by the CON handler. Be careful!
  1405.   
  1406.      * To obtain the window pointer of a CLI's console, pass the
  1407.        FileHandle returned by Open("*", MODE_OLDFILE) to the above
  1408.        function.
  1409.   
  1410.      * The result of the above function may well be NULL, e.g. in case of
  1411.        an AUX handler or if an AUTO CON handler is unable to open its
  1412.        window.
  1413.   
  1414.      * Sending an ACTION_DISK_INFO packet to an AUTO CON handler (2.0+)
  1415.        causes its window to lose its special AUTO properties (i.e. it can
  1416.        no longer be closed at any time by clicking on its Close gadget),
  1417.        as the window pointer returned in id_VolumeNode must remain valid
  1418.        from now on.
  1419.   
  1420.      * All in all: Don't use this function. :-)
  1421.   
  1422.      For more information, please refer to pages 273, 276, 435, 463, 485,
  1423.   and 629 in "The Amiga Guru Book" (see Manuals).
  1424.   
  1425.      Ralph Babel, rbabel@babylon.pfm-mainz.de
  1426.   
  1427.   4.10 What are pragmas?
  1428.   ======================
  1429.   
  1430.      Pragmas are special compiler commmands which control certain
  1431.   features of a C-compiler. Two problems arise when using pragmas:
  1432.     1. Pragmas are compiler specific. You cannot expect that one compiler
  1433.        will understand pragmas of another compiler, even if both run on
  1434.        the Amiga.
  1435.   
  1436.     2. You are not guaranteed that a compiler ignores pragmas, that he
  1437.        doesn't understand. Even more: It might not help, to use something
  1438.        like this:
  1439.                 #ifndef MY_COMPILER
  1440.                 #pragma DoAnything
  1441.                 #endif
  1442.   
  1443.   A workaround is to put pragmas in a special include file (BTW, the same
  1444.   holds true for statements like #asm (Aztec-C) or #extern (C++) and
  1445.   replace the above with
  1446.            #ifndef MY_COMPILER
  1447.            #include <mypragmas.h>
  1448.            #endif
  1449.   
  1450.      But what do pragmas on the Amiga? The most common usage (not the
  1451.   only, but most meant when talking about pragmas) is to tell the
  1452.   compiler about how to call library functions: Simple C functions expect
  1453.   their arguments on the stack, but library functions want their
  1454.   arguments in special processor registers and additionally the `library
  1455.   base' in register a6. Lets have a look at a pragma command of the
  1456.   Aztec-Compiler.
  1457.            #pragma amicall(SysBase,0xd2,FreeMem(a1,d0))
  1458.   
  1459.   This tells the compiler to put the first argument of FreeMem in register
  1460.   a1, the second in register d0 and the value of the variable SysBase in
  1461.   register a6. Maxons pragmas look the same, Dice pragmas and SAS pragmas
  1462.   look a bit more complicated;
  1463.            #pragma libcall SysBase FreeMem d2 0902
  1464.   
  1465.   Here d2 is (like 0xd2 above) the `library vector offset' (see below),
  1466.   the digits 09 are codes for the argument register in reversed order
  1467.   (Register codes are 0=d0, 1=d1, .., 8=a0, 9=a1, a=a2, ..), the
  1468.   following 0 is the result's registerä(always d0))and the final digit 2
  1469.   is the number of arguments.
  1470.   
  1471.      A command `FreeMem(fib,sizeof(*fib);' could produce the following
  1472.   code, if the compiler has seen a pragma statement like above:
  1473.            move.l  _fib,a1
  1474.            move.l  260,d1        ; sizeof(struct FileInfoBlock)
  1475.            move.l  _SysBase,a6
  1476.            jsr     -0xd2(a6)       ; 0xd2 = _LVOFreeMem
  1477.   
  1478.   Calling FreeMem in that way is shorter and faster than pushing the
  1479.   arguments on the stack, calling a function _FreeMem which would do just
  1480.   the same like the above code by pulling the arguments from the stack.
  1481.   
  1482.      The best way to use pragmas is to include statements like the
  1483.   following in your program:
  1484.            /*  SAS/C, Dice and GNU-c (since version 2.6.1) make it    */
  1485.            /*  very simple:                        */
  1486.            #if defined(__SASC)  ||  defined(_DCC)  ||  defined(__GNUC__)
  1487.              #include <proto/exec.h>
  1488.            #else
  1489.        
  1490.              /*  Get the prototype for the function; note, that this    */
  1491.              /*  is compiler independent.                */
  1492.              #include <clib/exec_protos.h>
  1493.        
  1494.              /*  Get the pragma; compiler dependent, but most pragmas    */
  1495.              /*  are in files with the same name.            */
  1496.              #ifdef AZTEC_C
  1497.                #include <pragmas/exec_lib.h>
  1498.              #elif defined(__MAXON__)
  1499.                #include <pragmas/exec_pragmas.h>
  1500.              #endif
  1501.        
  1502.              /*  Declare the SysBase variable                */
  1503.              extern struct ExecBase *SysBase;
  1504.            #endif
  1505.   
  1506.   The above example can be compiled on all these compilers and produce the
  1507.   best code. (Besides, the proto/*.h-files do nothing else than reading
  1508.   clib/*_protos.h and pragmas/*_pragmas.h with #include and then declare
  1509.   the SysBase variable.)
  1510.   
  1511.      A final question arises: How to get the pragmas? Most compilers have
  1512.   them included. However, sometimes you want to produce pragmas for
  1513.   yourself, for example if you are using new libraries or new versions
  1514.   with additional functions. In that case you can produce them from the
  1515.   so-called `FD' files which should be a part of the developer docs of
  1516.   the library. (The NDU has a directory FD which contains FD files for
  1517.   all libraries and devices of the OS. see Includes) Most compilers have
  1518.   a utility with the name `fd2pragma' or similar included which can do
  1519.   that for you. A freely distributable version which can produce pragmas
  1520.   for Aztec, Dice, SAS and Maxon as well as LVO files for assembler and
  1521.   stub routines for the tag versions is available on Aminet
  1522.   (`dev/misc/fd2pragma2_0.lha' and on the Fish CDs.
  1523.   
  1524.      For pragmas under gcc see Inline Headers.
  1525.   
  1526.   4.11 My Compiler/Linker is complaining about missing symbol xxx.
  1527.   ================================================================
  1528.   
  1529.      First be sure, that the function is really missing: For example
  1530.   floating point functions are in a special link library and you need a
  1531.   linker option like `-lm' to include it into your program. Another
  1532.   possibility would be that you are using a library function and didn't
  1533.   notice it. This might lead to a missing library base, `IntuitionBase'
  1534.   for example. In that case just put something like
  1535.            struct Library *IntuitionBase;
  1536.   
  1537.   somewhere in the global part of your program. (Don't forget to call
  1538.   OpenLibrary() and CloseLibrary! :-)
  1539.   
  1540.      However, you could as well use a function which really isn't present
  1541.   in your library at all. If you have, for example, an amiga.lib from 2.0
  1542.   you would hardly find the locale functions or the pool memory
  1543.   functions. (1) Best solution is to get the NDU (see Includes), but you
  1544.   probably don't want to wait for it. In that case you have to find what
  1545.   kind of function you are missing.
  1546.      * Simple library functions (Examples: `exec/AllocPooled',
  1547.        `locale/OpenCatalogA') can be called with pragmas. However, you
  1548.        need informations on the name of the library base and where to put
  1549.        the arguments. See Pragmas.
  1550.   
  1551.      * Tag functions are mostly just stub functions which call library
  1552.        functions. If you have, for example, `dos/AllocDosObject' which
  1553.        expects a constant and a pointer to an array of tags, you have the
  1554.        varargs version `AllocDosObjectTags' which expects tags on the
  1555.        stack as well! Just create the following function:
  1556.                 #include <clib/dos_protos.h>
  1557.                 #include <pragmas/dos_pragmas.h>    /*  Probably wrong name */
  1558.             
  1559.                 void *AllocDosObjectTags(ULONG objtype, Tag tag1, ...)
  1560.                 { return(AllocDosObject(objtype, (struct TagItem *) &tag1);
  1561.                 }
  1562.   
  1563.      * Some functions still remain: Amiga.lib has some functions which
  1564.        are really doing valuable things and not just call a library: The
  1565.        BOOPSI functions (`DoMethod', `DoSuperMethod') the memory pool
  1566.        functions (`LibAllocPooled', `LibCreatePool', which are
  1567.        replacements of 3.0 functions). The only way to replace these is
  1568.        to get equivalents. The AmigaFAQ archive contains some of them
  1569.        (DoMethod, DoSuperMethod and HookEntry) in the `programmer'
  1570.        directory as well as the most common pragma files and some
  1571.        examples of varargs functions. See Amiga-FAQ Archive.
  1572.   
  1573.      ---------- Footnotes ----------
  1574.   
  1575.      (1)  This problem arises most frequently for owners of Aztec which
  1576.   is no longer supported and owners of Dice, which has sometimes rather
  1577.   incomplete libraries. I own both ...
  1578.   
  1579.   4.12 Where do I find the function xxx?
  1580.   ======================================
  1581.   
  1582.      If you are not sure about the name of the appropriate function for a
  1583.   certain job or in which library to find it, you can search in these
  1584.   places:
  1585.      * In the Autodocs for each library you find at the very beginning a
  1586.        contents table listing all functions available in this library.
  1587.        They are sorted alphabetically, just like in the rest of the
  1588.        Autodocs.  In the body part of the Autodocs you find complete
  1589.        explanations and specifications for each library function. See
  1590.        Includes.
  1591.   
  1592.      * The .FD files also offer a very compact overview over all functions
  1593.        of the diverse libraries, complete with a short information about
  1594.        the function arguments. If you already know roughly what you
  1595.        search for and e.g. only need the precise order of the arguments,
  1596.        you can find all needed information here. See Pragmas.
  1597.   
  1598.      Dr. Peter Kittel, peterk@cbmger.de.so.commodore.com
  1599.   
  1600.   4.13 The GNU C compiler: general information and installation
  1601.   =============================================================
  1602.   
  1603.      This chapter contains general and installation information about the
  1604.   amiga-port of the GNU C compiler gcc.
  1605.   
  1606.   4.13.1 Current Version
  1607.   ----------------------
  1608.   
  1609.      Gcc current version is now 2.6.0 and 2.6.1 is in work.  It does
  1610.   include a new version of ixemul.library, v40.3, but users are urged to
  1611.   get ixemul404.lha on Aminet site or my own FTP site, due to errors for
  1612.   68000 systems. A new library, libnix, avoid using ixemul.library.
  1613.   2.6.1 will include protos, like SAS-C, making SASC ports to GCC easier.
  1614.   A new assembler, gas-2.5 is included, a package called q_anote enables
  1615.   output of mixing C/Asm code for debugging purposes.  Work is in
  1616.   progress to implement stack growing facility, thus avoiding setting
  1617.   stack before launching gcc.
  1618.   
  1619.   4.13.2 Requirements
  1620.   -------------------
  1621.   
  1622.      Any Amiga (ranging from A1000 upto A4000/40) will run amigados-gnu
  1623.   utilities. A minimum of 4MB memory is needed in order to compile
  1624.   small/medium projects. More memory will be needed for large projects,
  1625.   such as recompiling gcc itself, or programming C++. Gigamem and VMM do
  1626.   work with GCC so *maybe* less memory will work. But in this case, an
  1627.   MMU equipped Amiga (A3000,A4000/40) is necessary.  See 68EC0xx.
  1628.   
  1629.      A full installation, including C++/ObjC related files, inline
  1630.   headers, cbm-headers, (see Includes) roughly requires about 20 MB of HD
  1631.   space.
  1632.   
  1633.      Support for 1.2/1.3 is dropped. If you have 1.2/1.3, get a better
  1634.   Kickstart version. Gcc works under KS 1.2/1.3, but the full
  1635.   functionality is only available under KS 2.x+. A fast CPU (eg.
  1636.   68030@25MHz or better) is also of help.
  1637.   
  1638.   4.13.3 Authors
  1639.   --------------
  1640.   
  1641.      Gcc and related GNU-software has been ported to the Amiga by the
  1642.   following folks: See How to get help.
  1643.            Gcc v2.2.2 port:   Markus Wild
  1644.            Gcc v2.3.3 port:   Markus Wild
  1645.            Gcc v2.4.5 port:   Philippe Brand, Lars Hecking, Fred Fish
  1646.            Gcc v2.5.0 and up: Philippe Brand, Fred Fish, Leonard Norrgard
  1647.        
  1648.            Ixemul.library:    Markus Wild, Leonard Norrgard, R. Luebbert
  1649.            Libnix:           Matthias Fleischer, Gunther Nikl
  1650.                Gerlib:            Gerhard Mueller
  1651.   
  1652.   4.13.4 Sources for Gcc
  1653.   ----------------------
  1654.   
  1655.      All GCC sources & binaries are available on:
  1656.   
  1657.     1. Aminet sites (wuarchive.wustl.edu and mirrors such as ftp.luth.se)
  1658.        in /pub/aminet/dev/gcc
  1659.   
  1660.     2. Ramses The Amiga Flying BBS:
  1661.                 +33-1-60037015  HST Dual v32 terbo 4800-21600
  1662.                     +33-1-60037713  SupraFax v32bis    4800-14400
  1663.                     +33-1-60037716  Tornado v22bis     1200-2400
  1664.        in Topic `Development', Area `Gcc' (are 156).
  1665.   
  1666.      GNU source code is available on:
  1667.   
  1668.     1. the same FTP site you've taken the binary distribution from
  1669.   
  1670.     2. gnu.prep.ai.mit.edu (18.71.0.38) in `/pub/gnu'
  1671.   
  1672.     3. Ramses The Amiga Flying BBS in Topic
  1673.        `AmigaUnix/Unix/Linux/NetBSD', Area `Gnu Source Code'
  1674.   
  1675.      These archives should contain everything necessary to get you going,
  1676.   they don't include sources for ixemul.library, which are available on
  1677.   Aminet sites in `/pub/aminet/dev/gcc/ixemsrc3947.tar.gz' (as of this
  1678.   writing, work is in  progress for the v40 version of ixemul.library,
  1679.   sources will be available on an Aminet site near you).
  1680.   
  1681.      As stated by Richard Stallman of the FSF:
  1682.   
  1683.      "The GPL says that any distribution of binaries must contain either
  1684.   the source code or a written offer to supply source code (see the GPL
  1685.   for details of what is required)."
  1686.   
  1687.   4.13.5 Inline Headers
  1688.   ---------------------
  1689.   
  1690.      The inline headers for gcc can be created from the original CBM fd
  1691.   files.  See Includes. See Pragmas. They can be created as follows:
  1692.   
  1693.        CLI> Assign INCLUDE: GCC:os-include
  1694.        CLI> Assign FD: INCLUDE:fd
  1695.        CLI> Makedir INCLUDE:inline
  1696.        CLI> cd USR:bin/geninline
  1697.        CLI> gen31
  1698.   
  1699.      This will create all inline-headers in `GCC:os-include/inline'.  If
  1700.   you have 2.0 headers, use gen20 instead, if you have 3.0, use gen30.
  1701.   OS3.1 (rev 40.13) inline headers are included with the current version
  1702.   of gcc. See Current Version.
  1703.   
  1704.      NOTE: perl scripts do not handle correctly AmigaDOS include files,
  1705.   which seems to mean they are somewhat broken. This needs some voluntary
  1706.   work ...
  1707.   
  1708.      There is also another way of generating inline headers, using
  1709.   fd2inline program:
  1710.   
  1711.        CLI> fd2inline <fd_file> <proto_file>
  1712.   
  1713.   4.13.6 Amiga Libraries
  1714.   ----------------------
  1715.   
  1716.      Starting from this release an AmigaDOS compliant library is provided,
  1717.   thanks to libnix authors (Matthias Fleischer and Gunther Nikl).
  1718.   
  1719.      Anyway if you want to rebuild one, there are two methods:
  1720.   
  1721.      1) Using hunk2gcc; the AmigaDOS object converter made by Markus
  1722.   Wild. To achieve this, simply grab a copy of latest amiga.lib (from
  1723.   Commodore Development Kit, see Includes) and make a new directory where
  1724.   you want your converted object files to go, cd into it, and enter
  1725.   
  1726.            hunk2gcc amiga.lib [..further libs if you like..]
  1727.   
  1728.      This generates an a.out object file for every program unit present
  1729.   in the hunk file (in this case, from amiga.lib).
  1730.   
  1731.      As the final step convert all those files into an a.out style
  1732.   library by issuing:
  1733.   
  1734.            ar qc libamiga.a obj.*
  1735.            ranlib libamiga.a
  1736.   
  1737.      The ranlib run builds a symbol table in the archive, and makes
  1738.   accesses to the library much faster.
  1739.   
  1740.      2) Creating a libamiga.a library with libnix is fairly easy, but
  1741.   takes some time. Just uncompress sources.lha from libnix distribution
  1742.   and run a `make libamiga.a'.
  1743.   
  1744.      *Note:* As long as you make no AmigaDOS specific calls, you can
  1745.   create a dummy library using:
  1746.   
  1747.          cat "int dummy;" >dummy.c
  1748.          gcc -c dummy.c
  1749.          ar crv libamiga.a dummy.o
  1750.          mv libamiga.a gcc:lib
  1751.   
  1752.   4.13.7 Installation
  1753.   -------------------
  1754.   
  1755.     1. If this is your first installation of GCC:
  1756.   
  1757.        Do the following:
  1758.   
  1759.             cd place_with_lot_of_space      ; EDIT! specify one
  1760.             makedir gnu
  1761.             lha x gcc260-base.lha           ; first part, you need it
  1762.   
  1763.        Now you have to append `gnu/s/user-startup' to your
  1764.        `s:user-startup' (replace Devel:GNU by your own gnu path).
  1765.   
  1766.        Continue:
  1767.   
  1768.             execute gnu/s/user-startup      ; makes important assigns
  1769.             copy gnu/envarc/#? ENVARC:
  1770.   
  1771.        *Edit* the following lines!  If you have a 68000 or 68010 Amiga,
  1772.        remove the "-020" from the following lines wherever it appears!
  1773.   
  1774.             lha x gcc260-c-020.lha      ; C-compiler part; you need it
  1775.             lha x gcc260-doc.lha        ; only if you want Gcc documentation
  1776.             lha x gcc260-c++-020.lha    ; only if you want C++
  1777.             lha x gcc260-objc-020.lha   ; only if you want Objective-C
  1778.             lha x gcc260-utils.lha      ; only if you want additional utilities
  1779.                                         ; (recommended for Unix compatibility)
  1780.             lha x gcc260-utilsdoc.lha   ; if you want all utilities documentation
  1781.   
  1782.        You must restore links between some programs by running the script
  1783.        `restorelinks':
  1784.   
  1785.             sh /gnu/s/restorelinks      ; EDIT! Append a " copy" to this line
  1786.                                         ; if you don't want to use makelink
  1787.                                         ; but rather copy file
  1788.   
  1789.        Last part:
  1790.   
  1791.             lha x gcc260-diffs.lha      ; if you want to rebuild all distribution
  1792.             lha x gcc260-texi.lha       ; if you want to build Postscript doc files
  1793.   
  1794.        Now skip to next paragraph and happy compiling!
  1795.   
  1796.     2. If you "upgrade" your gcc environment from v2.5.x, just unarchive
  1797.        first 2 archives as it would normally include all what you need
  1798.        (thus gcc260-base and gcc260-c). Make sure you delete your
  1799.        previous ixemul.library wherever it is (usually LIBS:).
  1800.   
  1801.   
  1802.      *Note*:  new version of ixemul.library is provided, make sure you
  1803.   don't have another copy somewhere which may conflict with gcc.
  1804.   
  1805.   4.13.8 Compiling
  1806.   ----------------
  1807.   
  1808.      What about a nice Hello World ?
  1809.   
  1810.        #include <stdio.h>
  1811.        
  1812.        main()
  1813.        {
  1814.          printf("Hello World!\n");
  1815.        }
  1816.   
  1817.      This was pretty simple ;-) Now we have to compile it.  There's a lot
  1818.   of options in gcc but simplest way to compile this would be:
  1819.   
  1820.        CLI> gcc -o hello hello.c
  1821.   
  1822.      Simple ?
  1823.   
  1824.      Here's more options.
  1825.   
  1826.      Target processor for Motorola family: You can compile plain 68000
  1827.   code, 68020, 68030, 68040, 68881 (have a look at GCC documentation,
  1828.   either in info or AmigaGuide format, chapter `Invoking Gcc/SubModel
  1829.   Options/M680X0 Options for Motorola specific compilation flags').
  1830.   
  1831.        CLI> gcc -m68020 -m68881 -o hello hello.c
  1832.   
  1833.      This will compile your programs using 68020 code and direct calls to
  1834.   math-processor, and will link with accelerated libraries, located in
  1835.   `GCC:lib/lib020'.
  1836.   
  1837.      Optimization: Either you don't want optimization, or you can provide
  1838.   `-O', which will optimize your code, or if you really want top
  1839.   optimization, use `-O2' flag (for more discussion about optimization,
  1840.   read info or AmigaGuide doc chapter Invoking Gcc/Optimize Options).
  1841.   There's now even a `-O3' optimization option, which will go even
  1842.   further.
  1843.   
  1844.        CLI> gcc -O2 -o hello hello.c
  1845.   
  1846.      You'll never have a "Hello World" program running so fast ;-)
  1847.   
  1848.      Code generation: Perhaps you want to generate resident programs.
  1849.   Flag is -resident, at compile and link stage.
  1850.   
  1851.        CLI> gcc -resident -o hello hello.c
  1852.   
  1853.      Of course you can mix all options, resulting in:
  1854.   
  1855.        CLI> gcc -O2 -m68020 -m68881 -resident -o hello hello.c
  1856.   
  1857.      This will make a 68020+68881 executable highly optimized and
  1858.   resident.
  1859.   
  1860.      IMPORTANT: If you only use AmigaDOS functions or you don't want to
  1861.   use ixemul for philosophical reasons, you can get rid of ixemul.library
  1862.   with:
  1863.   
  1864.        CLI> gcc -noixemul -o foobar foobar.c
  1865.   
  1866.      provided you have libnix distribution (included with 2.6.0
  1867.   distribution).
  1868.   
  1869.   4.13.9 How to get help
  1870.   ----------------------
  1871.   
  1872.      The current amiga-gcc-port maintainer is available:
  1873.   
  1874.            Philippe BRAND
  1875.            Fidonet: Ramses The Amiga Flying BBS 2:320/104.21
  1876.            Email:   phb@colombo.telesys-innov.fr (ONLY for personnal email).
  1877.            Ftp:     colombo.telesys-innov.fr:/pub/amigados-gnu
  1878.                     or /pub/incoming/uploads for uploads.
  1879.   
  1880.      There's also an amiga-gcc mailing list running in Finland.  See
  1881.   Mailing lists.  Philippe Brand will forward all questions to that list,
  1882.   but you'd be better off using it directly ;)
  1883.   
  1884.   5 Applications
  1885.   **************
  1886.   
  1887.      This chapter offers informations about major Applications.
  1888.   
  1889.   5.1 Text Editors
  1890.   ================
  1891.   
  1892.      Text Editors are programs allowing to enter and edit unformatted
  1893.   text.  Generally, this means text that is meant to be manipulated by
  1894.   machine, rather than human. Programmers use these to enter the text for
  1895.   compilers.  Since UNIX machines don't typically have word processors,
  1896.   most text processing starts with a text editor, then is filtered
  1897.   through a page layout system (TeX, for example) to produce attractive
  1898.   paper results.
  1899.   
  1900.   *Commercial Products*
  1901.        CygnusEd Professional and TurboText seem to be the main contenders
  1902.        in the professional realm. The Fred Fish disks contain dozens of
  1903.        other shareware text editors. A demo version of TurboText is on
  1904.        Fish disk 445.  A very old demo of CygnusEd is on Fish disk 95
  1905.        (testament to its lasting-power). In the following some freely
  1906.        distributable editors will be discussed.
  1907.   
  1908.   *Emacs*
  1909.        Gnu Emacs (the "G" is not silent) comes from Unix and is probably
  1910.        the king of editors - it's huge (about 1 Megabyte), feature-packed
  1911.        (it does windows and even contains a game!) and extensible (if you
  1912.        know lisp you can write new emacs functions and bind them to any
  1913.        key combination).  On the other hand, it may be too huge, its
  1914.        feature-ladenness is imposing, and its extensibility often means
  1915.        you can't use someone else's emacs configuration. Source: Aminet
  1916.        (directory `util/gnu').
  1917.   
  1918.   *Vi*
  1919.        The leaner, less configurable, non-extensible cousin to gnu emacs
  1920.        is vi (pronounced "vee eye"). Unix people like vi especially
  1921.        because you find it on *any* Unix machine. What you choose is
  1922.        personal preference, and will mark you for life. Vim is a good vi
  1923.        for the amiga, and is on Fish disk 591 or in the `util/gnu'
  1924.        directory of Aminet.
  1925.   
  1926.   *DME*
  1927.        Many Amiga programmers like DME. It's fast, fully configurable;
  1928.        menus may be created and any key may be mapped. It's much easier
  1929.        to learn DME than than Emacs or Vi. There are three different
  1930.        versions: AmokEd, DME and XDME. It's a matter of opinion which you
  1931.        prefer. (Oberon and Modula programmers like AmokEd because it's
  1932.        written in Oberon and supports AmigaOberon error messages, C
  1933.        programmers like DME or XDME.) Sources: Aminet (directory
  1934.        `util/edit'), Fish disk 776 (XDME) and 749 (AmokEd), AMOK 90.
  1935.   
  1936.   5.2 What word processors are there?
  1937.   ===================================
  1938.   
  1939.      A word processor is the typical application for writing notes,
  1940.   letters or reports on a computer. Unless you prepare newsletters on a
  1941.   weekly basis, your word procesor is probably your workhorse program.
  1942.   Thus choosing one you are comfortable with determines how comfortable
  1943.   you are with your computer. Word processors can offer a variety of
  1944.   features, and many can approach the sophistication required for Desktop
  1945.   Publishing (see DTP) but no one uses them for programming, for which
  1946.   text editors are more suited.
  1947.   
  1948.      One distinguishes between Wysiwyg programs (What you see is what you
  1949.   get) and page layout languages. Wysiwyg programs should be fast,
  1950.   comfortable and easy to use. Most people prefer them. The alternative
  1951.   is an approach that works similar to compilers. You feed text files to
  1952.   a a program that produces the layout which may be previewed on screen
  1953.   or printed. LaTeX takes this approach. See TeX. Lout is another such
  1954.   system which seems smaller, easier to learn and has full documentation
  1955.   included, but it is nonstandard.  Lout produces Postscript output. (I
  1956.   don't know if this is an advantage or disadvantage. ;-) See Postscript.
  1957.   Both programs are freely distributable.
  1958.   
  1959.      There are a lot of wysiwyg programs, but only commercial products:
  1960.   FinalWriter, Final Copy II, Wordworth, Word Perfect, AmiWrite,
  1961.   Beckertext II, Maxon Word and many others. I don't dare to recommend
  1962.   any.  All I can say is: Give yourself time to make a selection.
  1963.   
  1964.   5.3 Desktop Publishing
  1965.   ======================
  1966.   
  1967.      These programs offer features lacking in word processors, usually
  1968.   tailored to flexible arrangement of text, but often don't provide all of
  1969.   the text manipulation that a good word processor provides. The best
  1970.   desktop publishing programs strive to provide the features of both,
  1971.   just as the best word processors strive to provide the features of
  1972.   desktop publishing programs. Microsoft Word (Mac, PC) is a good example
  1973.   of a word processing program that offers many page layout feature.
  1974.   Framemaker (UNIX, Macintosh, DOS, etc.) is an example of a desktop
  1975.   publishing system that offers most needed word processing functions. As
  1976.   yet, no Amiga program has bridged the gap, though the main word
  1977.   processors are coming close. (On the other hand, even many
  1978.   sophisticated programs don't support typesetting mathematics, tables,
  1979.   producing bibliographies, indexes, or cross-references. The page layout
  1980.   languages do, and programs like Frame are improving their support of
  1981.   such features.) Unless you need to prepare fancy newsletters or
  1982.   promotional literature, a word processing program is probably enough.
  1983.   See Word Processors.
  1984.   
  1985.      There are not yet any freely distributable wysiwyg desktop publishing
  1986.   systems. Commercial products are ProPage and PageStream. They have been
  1987.   playing leapfrog for the past few years. It appears that PageStream 3.0
  1988.   is about to leap ahead. A more detailed description of these products
  1989.   and their differences is welcome. Both programs' list prices are $299.
  1990.   Student discounts are available (approx 40% discount.)
  1991.   
  1992.   5.4 What is TeX and where can I get it?
  1993.   =======================================
  1994.   
  1995.      TeX is a very powerful wordprocessing system. It can display
  1996.   mathematical formulas or complex tables as well as function graphs,
  1997.   creates indices, contents and many other things. Its greatest advantage
  1998.   is that it is freely distributable (TeX, not the previewers and the
  1999.   printer drivers!) and that you find TeX all over the world on every
  2000.   computer family. Its greatest disadvantage is that it isn't very handy
  2001.   (works similar to a compiler) and it isn't wysiwyg. But many people
  2002.   like it. (BTW: This document is written using TeX. 8-) See Word
  2003.   Processors.
  2004.   
  2005.      There are two major implementations on the Amiga. The first one,
  2006.   Amiga-TeX, from Thomas Rockicki and Radical Eye software is commercial.
  2007.   It is said to be excellent and his owners seem to be very satisfied.
  2008.   But it costs at least 200$.
  2009.   
  2010.      I recommend PasTeX, a freely distributable version. People seem to
  2011.   have problems installing PasTeX, especially the font loading and
  2012.   generation (It's a quite complex program.) but I did not here anyone
  2013.   upset once it was installed. (A friend with knowledge of TeX helps
  2014.   immensely.) A few words should be said what you need:
  2015.      * 5 disks containing the TeX-compiler itself
  2016.   
  2017.      * 2 disks containing MetaFont
  2018.   
  2019.      * Nothing more Jörgen Grahn has written a short essay on how he
  2020.   personally did to make LaTeX work on his Amiga.  It's on Aminet as
  2021.   `text/tex/UsingLaTeX.lha'.
  2022.   
  2023.      Many people ask for fonts. They are included in the MetaFont-package
  2024.   and can get compiled by you. All you need to do is setting up your
  2025.   TeX-system in the right way which is described in the documentation.
  2026.   Please note that the PasTeX disks are compressed using the program
  2027.   Zoom. (see Endings) Sources: FTP at `ftp.uni-passau.de', directory
  2028.   `/pub/amiga/tex/PasTeX1.3' and the Fish CDs.
  2029.   
  2030.   5.5 Are there any Postscript interpreters?
  2031.   ==========================================
  2032.   
  2033.      PostScript is a programming language designed to be used to describe
  2034.   printing on pages. Apple helped make PostScript popular by selling
  2035.   printers with built in PostScript interpreters. Many programs have
  2036.   evolved to produce PostScript programs as their output, making
  2037.   PostScript the lingua franca of printing. Until recently, in order to
  2038.   print a PostScript file, you had to have a relatively expensive laser
  2039.   printer. The development that changed this was the software PostScript
  2040.   interpreter. These programs allow your computer to interpret PostScript
  2041.   programs, and produce the matrix of dots to send to your normal
  2042.   graphics printer.
  2043.   
  2044.      One of the benefits of PostScript is that it is resolution
  2045.   independent.  What this means is that it can support the highest
  2046.   resolution of your device - and that you can reasonably preview
  2047.   PostScript on a low resolution screen.
  2048.   
  2049.      There are two free PostScript interpreters for the Amiga. Post and
  2050.   Ghostscript. Post comes as an Amiga shared library along with front
  2051.   ends for previewing to the screen and printing. This structure allows
  2052.   others to write programs that can show PostScript images on screen. In
  2053.   fact, AmigaTeX uses Post's library to support incorporation of
  2054.   PostScript into documents.  Ghostscript similarly comes in two
  2055.   programs, but not as a shared library.  Ghostscript is the rendering
  2056.   engine, and Ghostview is the front end.  Sources: Aminet (directorys
  2057.   `text/print' and `text/dtp'), Fish disk 669
  2058.   
  2059.   Font Concepts
  2060.   =============
  2061.   
  2062.      The Amiga is able to use two different concepts of fonts. First of
  2063.   all   there are the bitmap fonts. These fonts are created by drawing a
  2064.   letter   pixel for pixel onto the screen. The advantage is that they
  2065.   look good at   small sizes, but are not very good for printout. Also
  2066.   they don't look   very good when you change their size. Therefore you
  2067.   have to recreate the   font for each size. Second there are the vector
  2068.   fonts. They are created by   curves which are stored as mathematical
  2069.   formula. This has the advantage   that changing the sizes does not
  2070.   effect the output. But this only applies   for larger sizes and
  2071.   print-outs. Vector fonts also use less memory.
  2072.   
  2073.   5.5.1 Amiga Font Formats
  2074.   ------------------------
  2075.   
  2076.     1. Agfa IntelliFont (suffix: .type or .lib) is the native font format
  2077.        on   the Amiga. You can use it in any application and it can be
  2078.        converted to the   standard bitmap format using the system
  2079.        utilities `IntelliFont'   (OS 3.x) or `Fountain' (OS 2.x).
  2080.   
  2081.     2. Postscript Type 1 fonts can be used within many applications, it
  2082.        can be   used in every word processor and DTP program. There are
  2083.        two versions of   the Type 1 format: Binary and ASCII (suffix:
  2084.        .pfb & .pfa). The Amiga   software uses the Binary format, but you
  2085.        can easily convert them with   TypeSmith or some PD software
  2086.        products (z.B. PFB2PFA) . In Addition to the   files mentioned
  2087.        above, there are the metrics files with the suffixes .afm   or
  2088.        .pfm. They contain information about the size (width) of the
  2089.        letters   and most programs expect this file to be in the same
  2090.        directory as the font   file.
  2091.   
  2092.     3. Postscript Type 3 fonts (suffix: .ps or nothing) are not often
  2093.        used on   the Amiga, but some applications do support this font
  2094.        format (e.g.    PageStream). There are also some download
  2095.        utilities from PD sources   available.
  2096.   
  2097.     4. Truetype fonts (suffix: .ttf) are not very common on the Amiga,
  2098.        there   is one word processor supporting this format (Wordworth
  2099.        3.0). Due to the   lower quality of the format, Amiga users tend
  2100.        to use higher quality for   their DTP, DTV and word processing...
  2101.        There are also two formats: Mac &   Windows available. The Amiga
  2102.        software is able to use the Windows format.
  2103.   
  2104.     5. DMF fonts is the privat format of PageStream (suffix: .dmf), since
  2105.         PageStream is the market leader in DTP programs on the Amiga, so
  2106.        this   format is very common!
  2107.   
  2108.     6. Bitmap fonts (suffix: .font and numbers in a directory by the name
  2109.        of   the font, sometimes .otag when converted from IntelliFont)
  2110.        were used in the   OS 1.x, but have been replaced by the  superior
  2111.        IntelliFont Format in OS   2.0. Under 2.0 or higher you still are
  2112.        able to use the bitmap fonts for   small sizes, but for printouts
  2113.        you should use the IntelliFont format or   any other vector font
  2114.        format mentioned above.
  2115.   
  2116.     7. Colour Bitmap fonts (same suffixes as Bitmap Fonts, but the
  2117.        numbers have   in addition a C, e.g. 35C) are also very common on
  2118.        the Amiga, they are   mainly used for DTV applications, like the
  2119.        Video Toaster and Scala.
  2120.   
  2121.   
  2122.   5.5.2 Frequently Requested Amiga Fonts
  2123.   --------------------------------------
  2124.   
  2125.     1. First place to look for fonts is the AMINET archive. This is the
  2126.        biggest     archive of Amiga software and there you will find also
  2127.        quite a lot of     fonts. The Aminet consists of many mirrors
  2128.        around the world. Here are some     of them:
  2129.   
  2130.          1. ftp.wustl.edu,
  2131.   
  2132.          2. ftp.luth.se,
  2133.   
  2134.          3. ftp.eunet.ch,
  2135.   
  2136.          4. ftp.uni-paderborn.de,
  2137.   
  2138.          5. ftp.doc.ic.ac.uk.
  2139.   
  2140.        Just log in as ftp and go to the directory
  2141.   
  2142.        /pub/aminet/text/font.
  2143.   
  2144.     2. Another good ftp server to look is the CICA-server:
  2145.   
  2146.          1. ftp.cica.indiana.edu
  2147.   
  2148.   
  2149.        To this server are also some mirrors around the world available.
  2150.   
  2151.     3. Also a good place to look for is the following WWW server:
  2152.   
  2153.          1. http://jasper.ora.com/Internet-Font-Archive.html
  2154.   
  2155.   
  2156.     4. Another good place is the Fresh Fonts I CD-ROM, there you will
  2157.        almost     certainly find some nice fonts. The CD is available from
  2158.   
  2159.          1. Fred Fish / Amiga Library Services (orders@amigalib.com)
  2160.   
  2161.          2. Stefan Ossowski / Schatztruhe GmbH
  2162.   
  2163.   
  2164.        The CD is for free when buying another CD from that company.
  2165.   
  2166.        You can also access the HTML pages on the CD under the following
  2167.        address:
  2168.   
  2169.          1. http://macke.gris.informatik.uni-tuebingen.de:4711/~damor/
  2170.   
  2171.   
  2172.   
  2173.   5.5.3 Commercial Font Sources
  2174.   -----------------------------
  2175.   
  2176.      Commercial fonts can be obtained from a number of different
  2177.   companies,   including the large font houses: Adobe, Font Haus, Font
  2178.   Company,   Bitstream, and Monotype. At these companies, fonts cost
  2179.   about $40 for a   single face, and must be purchased in packages.
  2180.   Adobe, Bitstream, and   Monotype also sell pre-designated type
  2181.   collections for slightly lower   prices.
  2182.   
  2183.      There are also a lot of PD reseller who have a vast quantity of
  2184.   fonts,   check out your local Amiga magazin for more information.
  2185.   
  2186.      Please consult the vendor list for a more complete list of vendors.
  2187.   
  2188.   5.5.4 Non-Latin fonts on the Amiga
  2189.   ----------------------------------
  2190.   
  2191.      Due to the really bad information policy by C= there was actually no
  2192.    information about non-latin fonts. But still it is possible to use
  2193.   them,   without difficulty. You just have to get yourself some
  2194.   additional files.    First of all you need the non-latin font files.
  2195.   There is a large selection   of them on the Fresh Fonts CD-ROM
  2196.   mentioned above. In order to use the   non-latin font files, you have
  2197.   to get yourself the appropriate keymap   file, this will remap the keys
  2198.   on the keyboard to the appropriate letters   of the foreign alphabet,
  2199.   e.g. in order to use a Russian font, you should   set the russian
  2200.   keymap file in the preferences (via PREFS/INPUT).
  2201.   
  2202.      Not only that you can write with a non-latin alphabet, you can also
  2203.   localize   your workbench. How about a Greek workbench or a Hebrew
  2204.   workbench? Have a   look into the AMINET archive (mentioned above) for
  2205.   these files!
  2206.   
  2207.      In addition to this you can easily use Hebrew & Arabic in any word
  2208.   processor   incl. writing from right-to-left! This can be easily done
  2209.   by setting the   kerning value to negative values (like this the cursor
  2210.   moves left and not   right) and moving the characters into the negativ
  2211.   part! You can get fonts   from me with this feature!
  2212.   
  2213.   5.5.5 Amiga Font Installation
  2214.   -----------------------------
  2215.   
  2216.      The installation of Postscript, DMF and Truetype fonts is described
  2217.   by the   application that use them. Please refer to the manuals of the
  2218.   software   packages.
  2219.   
  2220.      The installation of IntelliFonts is very easy. Just start
  2221.   `IntelliFont'   (OS 3.x) or `Fountain' (OS 2.x) and follow the
  2222.   guidelines from within   the program.
  2223.   
  2224.      In order to install bitmap fonts, either copy them to the logical
  2225.   device   FONTS: or assign the directory with your bitmap fonts:
  2226.   
  2227.          ASSIGN Fonts: <your_directory> ADD
  2228.   
  2229.      Right after this you can start your application and use them. When
  2230.   using   non-latin fonts, don't forget to set the appropriate keymap
  2231.   file!
  2232.   
  2233.   5.5.6 Amiga Font Utilities
  2234.   --------------------------
  2235.   
  2236.     1. IntelliFont
  2237.   
  2238.        IntelliFont is the system program by OS 3.x which lets you install
  2239.        Agfa   IntelliFonts and converts them to bitmap fonts. The program
  2240.        is located in   the drawer `SYS:System/'. For more information
  2241.        read your Workbench 3.x   manual.
  2242.   
  2243.     2. Fountain
  2244.   
  2245.        Is the preceding program to IntelliFont and comes with the now
  2246.        obsolete   OS 2.x. Please read the section about Fountain in your
  2247.        Workbench 2.x   manual.
  2248.   
  2249.     3. PFB2PFA
  2250.   
  2251.        This neat little utility lets you convert Postscript Binary files
  2252.        to   Postscript ASCII files. This is needed in order to use DOS &
  2253.        Amiga   Adobe Type 1 fonts on the Mac!
  2254.   
  2255.     4. CacheFont
  2256.   
  2257.        This great program caches the fontlist for you, in order to save a
  2258.        huge   amount of time. The program looks for all fonts available
  2259.        on the system   and creates a special cache-file on disk.
  2260.   
  2261.     5. TypeSmith
  2262.   
  2263.        This is the best font converter on the Amiga, besides this
  2264.        function it is   also a full blown font editor (see below) :-).
  2265.        The program is able to   convert between:
  2266.   
  2267.          1. Truetype
  2268.   
  2269.          2. DMF
  2270.   
  2271.          3. Adobe (Type 1 & 3)
  2272.   
  2273.          4. IntelliFont
  2274.   
  2275.          5. Bitmap (Amiga, Adobe, DMF)
  2276.   
  2277.   5.5.7 Making Outline Fonts
  2278.   --------------------------
  2279.   
  2280.      This is very, very difficult. Many people imagine that there are
  2281.   programs that will simply convert pictures into fonts for them. This is
  2282.    not the case; most fonts are painstakingly created by drawing curves
  2283.   that closely approximate the letterforms. In addition, special rules
  2284.   (which improve hinting, etc.) mandate that these curves be drawn in
  2285.   specific ways. Even designing, or merely digitizing, a simple font can
  2286.   take hundreds of hours.
  2287.   
  2288.      The easiest way of learning how to create fonts, is to have a look at
  2289.    existing fonts and try to change some letters.
  2290.   
  2291.      Given that, there are two major programs used for font design on the
  2292.    Amiga, TypeSmith 2.5 ($150) and FontDesigner ($100). These programs
  2293.   will allow you to import scanned images, and then trace them with
  2294.   drawing tools.  The programs will then generate Adobe type 1, 3,
  2295.   TrueType,   AGFA Intellifont, DMF and Bitmap fonts for either the
  2296.   Amiga, the Macintosh   or the IBM PC. They will also generate automatic
  2297.   hinting. They also open   previously constructed outline fonts,
  2298.   allowing them to be modified, or   converted into another format.
  2299.   
  2300.      As far as I know, there are no shareware programs that allows you to
  2301.    generate outline fonts.
  2302.   
  2303.      There are also two programs for creating bitmap fonts. Personal Fonts
  2304.    Maker and Calligrapher. The second one has not been updated for
  2305.   several   years, but it still is a good tool to work with. The first
  2306.   Program was   created by adding some features to a good bitmap paint
  2307.   program (Personal   Paint).
  2308.   
  2309.      There are some shareware tools to create bitmap fonts which you can
  2310.   convert to outline (vector) fonts with TypeSmith.
  2311.   
  2312.   5.5.8 Problems and Possible Solutions
  2313.   -------------------------------------
  2314.   
  2315.     1. Pagestream does not recognize your newly installed font.
  2316.   
  2317.        This happens when you have two fonts with the same ID. The
  2318.        solution is   to load such a font into a font editor and enter a
  2319.        new ID for one of the   fonts. Still it might happen that you
  2320.        choose another one, that has already   been used by!
  2321.   
  2322.     2. Your application does not find the IntelliFont.
  2323.   
  2324.        This happens when you haven't set the locigal device FONTS: to
  2325.        your drawer.    You can change this by typing the following
  2326.        command into your SHELL or add   this line to your
  2327.        `S:User-Startup' file:
  2328.   
  2329.               ASSIGN Fonts: <your_drawer> ADD
  2330.   
  2331.     3. You're using a non-latin font and the wrong characters appear when
  2332.         typing.
  2333.   
  2334.        This happens when you forget to set the appropriate keymap file.
  2335.        Enter   the Prefs directory and start the program `INPUT'. There
  2336.        you can   choose your keymap file.
  2337.   
  2338.   
  2339.   5.6 How to deal with Non-Latin texts?
  2340.   =====================================
  2341.   
  2342.      Currently I know only programs for read japanese and chinese texts.
  2343.   
  2344.      Siepieau Pang (siepiau@gbamail.mincom.oz.au)
  2345.   
  2346.   5.6.1 Japanese editors and viewers
  2347.   ----------------------------------
  2348.   
  2349.      ANS (Amiga Nihongo System) version 1.0, produced by
  2350.            SoftHouse Tecnode
  2351.            102 Coupo Izumi
  2352.            1-4-5 Houya-shi
  2353.            Izumi-machi
  2354.            Tokyo 202
  2355.            JAPAN
  2356.   
  2357.   and distributed in Japan by MIQ Japan, Ltd. has been released in Japan.
  2358.   It offers a Japanese environment for Commodore Amiga users, is
  2359.   compatible with Amiga DOS 2.0 (works fine with version 1.3, too), and
  2360.   requires at least 1MB RAM (more recommended). ANS features Japanese
  2361.   windows/menus (these replace the English menus), 12 and 24 dot-matrix
  2362.   Japanese fonts, Jinput/Joutput (both constitute a Japanese front-end
  2363.   processor), XEDmini (a simple Japanese text editor with built-in font
  2364.   editor, and can be used as a Japanese terminal), a kana-to-kanji
  2365.   conversion dictionary for XEDmini and Jinput, Jfilter (for viewing
  2366.   Japanese files while connected to an MS-DOS console), and utilities for
  2367.   Japanese code conversion and communication. Note that XEDmini uses pcj
  2368.   (Japanese version of pcd) for communications, and that one can do binary
  2369.   uploads/downloads while working on files). I hear that it is reasonably
  2370.   priced, and very easy to use.
  2371.   
  2372.      JemTeX is a preprocessor that turns a Japanese text file (i.e., a
  2373.   TeX file with Japanese text) into a standard (La/Mu)TeX file.  The
  2374.   archive (zipped) comes with the jis2mf utility along with a 24-dot
  2375.   bitmapped kanji font and a program for generating kanji tables. With
  2376.   jis2mf you can make metafont files out of the bitmapped font. JemTeX
  2377.   v2.0 will compile on an Amiga using SAS/C, or on a UNIX machine using
  2378.   gcc. This program is available at the FTP site utsun.s.u-tokyo.ac.jp
  2379.   (133.11.11.11). JemTeX v2.0 was written by Francois Jalbert
  2380.   (jalbert@iro.umontreal.ca or jalbert@cs.ubc.ca).
  2381.   
  2382.      The following are PD viewers on Aminet (text/show directory)
  2383.   
  2384.      JIStoJi by Bart Mathias automatically identifies electronic texts
  2385.   written in Old-JIS, New-JIS, Shift-JIS, or EUC-JIS (as well as ASCII)
  2386.   and displays them on screen, or prints them to dot-matrix printers.
  2387.   Will run on Kickstart 1.3 and up.
  2388.   
  2389.      jmore (Japanese more) is basically a more clone that also reads
  2390.   ns-kanji (Shift-JIS) text. It opens its own hires interlaced screen and
  2391.   requires a font handler called jFontSys to be running. The archive
  2392.   includes jmore, jFontsys and the wlook/16 bitmap font.  However, you
  2393.   will also need the kanji fonts. (Aminet, `text/font/amknj16.lzh') All
  2394.   the documentation comes as Japanese text, so you need a JIS viewer to
  2395.   read the installation instructions. For your convenience, I have
  2396.   summarized the installation procedure below:
  2397.     1. Place the `wlook/16' font in your `FONTS:' directory
  2398.   
  2399.     2. Assign `JFONTS:' to where you unarchive the amknj16 fonts. This
  2400.        need not be the same as your `FONTS:' directory
  2401.   
  2402.     3. Place the file `jFont-startup' in the `S:' directory
  2403.   
  2404.     4. Insert the following line into your `startup-sequence':
  2405.                 run >nil: jFontSys
  2406.   
  2407.     5. To use execute the following command
  2408.                 jmore <japanese.txt>
  2409.   
  2410.   JISconvert by Dwight Hubbard is a japanese text conversion utility for
  2411.   Amiga computers. It supports conversion between EUC, New JIS, Old JIS,
  2412.   NEC JIS and Shift JIS. It also has options to convert half-size
  2413.   katakana to full size and repair files with ESC characters stripped. No
  2414.   installation required. Requires AmigaDOS 2.04 or newer.
  2415.   
  2416.   5.6.2 Chinese text viewers
  2417.   --------------------------
  2418.   
  2419.      HZview (by Ji Ma) shows 8-bit Guo Biao encoded chinese text
  2420.   documents. Requires AmigaDOS v2.1 and above, and cclib.16 bitmap
  2421.   library (included).
  2422.   
  2423.      *NOTE*: This is a pre-release version. What the doc file does not
  2424.   tell you is that you need to do the following:
  2425.     1. Open a default public hires interlaced 1 or 2-bit deep screen
  2426.   
  2427.     2. The size of the file to be read is restricted to about 30K (on my
  2428.        machine, A1200, WB3.0)
  2429.   
  2430.     3. An FPU is required if you want to scroll the text without crashing
  2431.   
  2432.     4. The cclib.16 should be in the same directory as the file to be read
  2433.   
  2434.   Other small bugs still exist which may crash the machine.
  2435.   
  2436.   6 Connecting your Amiga to the world
  2437.   ************************************
  2438.   
  2439.   7 Emulators
  2440.   ***********
  2441.   
  2442.      What? The Amiga isn't good enough? You really want it to be another
  2443.   machine?  Well, look here...
  2444.   
  2445.   7.1 Can I run Unix on my Amiga?
  2446.   ===============================
  2447.   
  2448.      Actually there are three Unix versions on the Amiga. All of them
  2449.   need at least 68030 (see 68EC0xx), probably a 68040 in the near future
  2450.   and seem to have problems with many hard-drive-controllers. You should
  2451.   have a good look into the documentation before installing it. Unix
  2452.   needs much resources, say at least 10Mb RAM and a 150Mb Unix-partition
  2453.   on the hard-drive.
  2454.   
  2455.     1. Commodore offered a System V Unix in the past. It contained TCP/IP,
  2456.        X11 and other software and seemed to make a good job, but it was
  2457.        expensive and after all Commodore has dropped developing it.
  2458.        Commodore-Unix needs a streamer because it is distributed on tapes.
  2459.   
  2460.     2. A Linux port is prepared. But actually there is not very much than
  2461.        the kernel. Specialists might like to use it, but it cannot be
  2462.        recommended for now. Linux is freely distributable. Sources:
  2463.        `ftp.tsx-11.mit.edu' or `ftp.uni-erlangen.de', both directory
  2464.        `/pub/Linux/MIRROR.tsx-11/680x0'.  Or `ftp.leo.org', directory
  2465.        `/pub/comp/os/linux/680x0'.
  2466.   
  2467.     3. NetBSD is freely distributable too. Like Linux it isn't ready for
  2468.        now, but it seems to make big steps. Most GNU software is said to
  2469.        run, especially emacs and gcc. I think it's worth to have a look
  2470.        on it. Sources: `ftp.uni-erlangen.de', Directory
  2471.        `/pub/amiga/unix/NetBSD-regensburg'.  See Fish CD.
  2472.   
  2473.   
  2474.   7.2 Is it possible to use the Amiga as X11 terminal?
  2475.   ====================================================
  2476.   
  2477.      Yes, it is. There are three different packages available:
  2478.   
  2479.      GfxBase offers a commercial version which is said to be excellent,
  2480.   but expensive. The distribution includes different window managers and
  2481.   clients.  A demo version is on Aminet. (`gfx/x11/GfxBase-X11-Demo.lha')
  2482.   
  2483.      AmiWin is a Shareware X11R6 product supporting AmiTCP, AS225 and
  2484.   different graphic cards. A demo version is available on Aminet,
  2485.   `gfx/x11/AmiWin*.lha'.
  2486.   
  2487.      DaggeX is freely distributable and probably not finished yet. (It
  2488.   calls itself version 0.91.) Source: Aminet, `gfx/x11/DaggeX-0.91.lha'
  2489.   and `gfx/x11/twm_930531.lha'.
  2490.   
  2491.   7.3 Is there a way to start MS-Dos programs?
  2492.   ============================================
  2493.   
  2494.      PC-Task is a software only IBM-PC emulator for all Amiga computers
  2495.   allowing use of MSDOS and MS Windows 3.1 software (provided RAM/HD
  2496.   space is sufficient).  The current release is 3.1 which includes
  2497.   emulation of 80286 with MDA/CGA/EGA/VGA/SVGA, serial and parallel
  2498.   ports, mouse, two harddrives, two floppies and CDROM support.  A
  2499.   demonstration version can be obtained from aminet sites:
  2500.   `/pub/aminet/misc/emu/PCTaskDemo31.lzh'.  Author Chris Hames
  2501.   (bytey@werple.mira.net.au) Publisher (pctask@quasar.dialix.oz.au)
  2502.   
  2503.   7.4 How to mount MsDos-formatted Syquests on Amiga
  2504.   ==================================================
  2505.   
  2506.      To mount a MSDos-formatted Syquest on Amiga, you need with an (DOSen)
  2507.   Adaptec-Controller the following Mount-entry in `DEVS:Mountlist': If
  2508.   your medium does have more than one partition, you need to copy the
  2509.   following Mount-Entry for every partition and give each partition
  2510.   another name (eg. SyC:, SyD:, SyE:, etc.) You don't need to change
  2511.   LowCyl and HighCyl for each partition; CrossDOSFileSystem does that
  2512.   automatically.
  2513.   
  2514.        SyC:   /* SyD:, SyE:, etc. */
  2515.                Filesystem      = L:CrossDOSFileSystem
  2516.                Device          = scsi.device
  2517.                Unit            = 2
  2518.                Flags           = 1
  2519.                Surfaces        = 1
  2520.                BlocksPerTrack  = 1
  2521.                BlockSize       = 512
  2522.                Reserved        = 1
  2523.                Interleave      = 0
  2524.                LowCyl          = 0
  2525.                HighCyl         = 524287
  2526.                Buffers         = 128
  2527.                BufMemType      = 0
  2528.                Stacksize       = 4000
  2529.                Priority        = 5
  2530.                GlobVec         = -1
  2531.                DosType         = 0x4D534800
  2532.                Activate        = 1
  2533.        #
  2534.   
  2535.      For different (DOSen) controllers this entry should work, too, but
  2536.   maybe you have to adjust it. When inserted, the Syquest-270MB medium is
  2537.   (in this case) automatically mounted (as drive SyC:) and can be used
  2538.   with help of the CrossDOS-Filesystem as usual.
  2539.   
  2540.      Gerhard Schneider (fido@incubus.sub.org) Andre Keller
  2541.   (keller@rs11.hrz.th-darmstadt.de)
  2542.   
  2543.   8 Miscellaneous
  2544.   ***************
  2545.   
  2546.      This last chapter contains some questions that don't fit in the
  2547.   chapters above.
  2548.   
  2549.   8.1 Is there any unix version of LhA?
  2550.   =====================================
  2551.   
  2552.      See Endings.
  2553.   
  2554.   8.2 What are files ending with ...?
  2555.   ===================================
  2556.   
  2557.      Most endings on FTP sites or Fish disks tell you that the file is
  2558.   compressed and/or is an archive containing more than one file. Some
  2559.   programs even archive whole disks. Frequently found endings and
  2560.   programs to handle the related files are:
  2561.   *.sfx*
  2562.        Compressed archives which are included in an executable program:
  2563.        Just call the program and it will extract itself (sfx = self
  2564.        extract)
  2565.   
  2566.   *.lha*
  2567.   *.lzh*
  2568.        Compressed archives; recommended: LhA (`util/arc/LhA_e138.run' on
  2569.        Aminet  or Fish disk 715) or Lx (`util/arc/lx100.lha' on Aminet),
  2570.        Unix version available (`misc/unix/lha-1.00.tar.Z')
  2571.   
  2572.   *.dms*
  2573.        Disks compressed using DMS (`util/arc/dms111.sfx' on Aminet or
  2574.        Fish disk 406)
  2575.   
  2576.   *.zom*
  2577.        Disks compressed using Zoom (`util/arc/Zoom_5.4.lha' on Aminet,
  2578.        Fish disk 682); an older version which you probably need for
  2579.        uncompressing PasTeX is found on Fish disk 459.
  2580.   
  2581.   *.zoo*
  2582.        Compressed archive; recommended: Zoo (`util/arc/zpp2-10.lzh' on
  2583.        Aminet or Fish disk 527)
  2584.   
  2585.   *.Z*
  2586.   *.z*
  2587.   *.gz*
  2588.        Compressed files; recommended gzip (`util/pack/gzip124x.lha' on
  2589.        Aminet), note that this are Unix files in most cases
  2590.   
  2591.   *.tar*
  2592.        Acrhive; recommended: tar (`util/arc/tar.lha' or
  2593.        `util/arc/gtar10.lha' on Aminet or Fish disk 445), note that tar is
  2594.        a Unix archiver and you often find soething like `.tar.Z'.
  2595.   
  2596.   *.arj*
  2597.        Compressed archive; recommended unarj (`util/arc/unarj-0.5.lha' on
  2598.        Aminet)
  2599.   
  2600.   *.zip*
  2601.        Compressed archive; recommended UnZip (`util/arc/unzip-5.1.lha' on
  2602.        Aminet), note that this are MS-Dos archives in most cases
  2603.   
  2604.   8.3 Is there a Stacker-like utility to pack my hard drive?
  2605.   ==========================================================
  2606.   
  2607.      XFH does a good job. It operates as a handler and uses the
  2608.   XPK-libraries, so you have different compression modes (RAKE is a good
  2609.   choice) and possibly even more in the future. The only disadvantage is,
  2610.   that the size of a file is limited by RAM: Don't use it with less than
  2611.   2MB of RAM.
  2612.   
  2613.      XPKDisk by Olaf 'Rhialto' Seibert is another stacker program that
  2614.   takes advantage of the variety of XPK libraries available. Unlike other
  2615.   harddisk compressors it does not compress the files, but creates a
  2616.   pseudo partition and stores the whole tracks as compressed files on
  2617.   your harddisk. Its major advantage is that it does not limit the
  2618.   maximum file size, because it works similar to trackdisk.device and
  2619.   therefore does not need too much temporary storage.
  2620.   
  2621.      But be careful if you want to use ReOrg on a comprimized partition:
  2622.   ReOrg should be set to leave enough memory for the xpkdisk buffers.
  2623.   And because of ReOrgs buffering, you can use few buffers for xpkdisk
  2624.   (perhaps as few as 2 or 3). Don't use ReOrg if you don't know the
  2625.   memory needs of XFH or XPKDisk.
  2626.   
  2627.      Another possibility is EPU. It's shareware and should offer the same
  2628.   as XFH, but without limiting the file size.
  2629.   
  2630.      Sources: Aminet, directory `util/pack', Fish disks 754 (XFH) and 858
  2631.   (EPU)
  2632.   
  2633.   8.4 Where do I get Fish disk xxx?
  2634.   =================================
  2635.   
  2636.      Those FTP servers have that much space (or a CD-Rom) to have all
  2637.   fish disks available online:
  2638.        ftp.isca.uiowa.edu      (USA, directory `/amiga/fx/fxxx')
  2639.        ftp.hawaii.edu          (USA, directory `/pub/amiga/fish')
  2640.        ftp.funet.fi            (Finland, directory `/pub/amiga/fish')
  2641.   
  2642.   Note that the CD-Rom's are not always mounted. See FTP.
  2643.   
  2644.      Another possibility would be to ask your local dealer. :-)
  2645.   
  2646.   9 Where and how do I get software and other informations?
  2647.   *********************************************************
  2648.   
  2649.      Three questions arise in this context: Which programs can be found,
  2650.   where are they and how to get them and transfer them home?
  2651.   
  2652.   9.1 Files and databases on freely distributable software
  2653.   ========================================================
  2654.   
  2655.      Of course you need to know where you find things. Many good choices
  2656.   are listed in this paper, as I hope. Other sources are:
  2657.   
  2658.   *AmigaSciSchool*
  2659.        is a list of software and where you find it in Ascii format. It is
  2660.        posted monthly to the newsgroups `comp.sys.amiga.applications',
  2661.        `comp.unix.amiga', and `news.answers'. Additionally you will find
  2662.        it on Aminet sites (`text/doc/AmigaSciSchool-4.01'). It handles
  2663.        everything listed here and many more, for example GNU software,
  2664.        libraries (linked and shared), shells, Unix commands, educational
  2665.        and scientific software and much more.
  2666.   
  2667.   *FishCon*
  2668.        are lists of the Fish disk contents. (`fish/doc/fishcon-???.lzh' on
  2669.        Aminet)
  2670.   
  2671.   *FishXref*
  2672.        is a cross reference list of the Fish contents.
  2673.        (`fish/doc/fishxref-???.lzh' on Aminet) FishXref and Fishcon are in
  2674.        Ascii format.
  2675.   
  2676.   *KingFisher*
  2677.        A Fish disk database, (`fish/doc/Kingfisher1_30.lha', which is the
  2678.        program and `fish/doc/KFData850.lha' ,which contains the data, on
  2679.        Aminet or Fish disk 863) allows search by name and context. See
  2680.        Fish.
  2681.   
  2682.   9.2 A collection of tests
  2683.   =========================
  2684.   
  2685.      `Comp.sys.amiga.reviews' is a moderated newsgroup where tests of
  2686.   soft- and hardware, books and anything else relevant to the Amiga are
  2687.   posted. Its always a good idea to check this newsgroup for a review, if
  2688.   you are interested in something special. Of course you always find only
  2689.   the latest reviews, but the older postings are available per FTP from
  2690.   `math.uh.edu', Directory `/pub/Amiga/comp.sys.amiga.reviews' or on the
  2691.   Fish CDs.
  2692.   
  2693.   9.3 Getting files from a FTP server
  2694.   ===================================
  2695.   
  2696.      Things are easy for those who have access to the Internet and a
  2697.   program called FTP (File Transfer Program). Nearly all Unix computers
  2698.   have it, but not all of them allow the use of FTP.
  2699.   
  2700.      FTP allows you to gain access to some other machines and store and/or
  2701.   retrieve files. Normally one needs an acoount on the remote machine to
  2702.   use it, bat a number of machines have a setup that allows everybody to
  2703.   log in as the user `ftp' or `anonymous', so anybody may get files from
  2704.   them. The most important of this servers are the Aminet servers, which
  2705.   mirror each other and hence should have the same files. They are the
  2706.   best choice if you are looking for Amiga software. Aminet hosts are
  2707.        Land         Name                     IP Adresse      Pfad         Files
  2708.        
  2709.        USA (MO)     ftp.wustl.edu            128.252.135.4   pub/aminet/    ALL
  2710.        USA (CA)     ftp.cdrom.com            192.216.222.5   pub/aminet/   9000
  2711.        USA (TX)     ftp.etsu.edu             192.43.199.20   pub/aminet/   5000
  2712.        USA (WI)     ftp.netnet.net           198.70.64.3     pub/aminet/  10000
  2713.        Scandinavia  ftp.luth.se              130.240.18.2    pub/aminet/  10000
  2714.        Switzerland  ftp.eunet.ch             146.228.10.16   pub/aminet/   5500
  2715.        Switzerland  ftp.math.ethz.ch         129.132.104.6   pub/aminet/   1000
  2716.        Switzerland  litamiga.epfl.ch         128.178.151.32  pub/aminet/    300
  2717.        Germany      kelly.uni-paderborn.de   131.234.128.206 pub/aminet/    ALL
  2718.        Germany      ftp.uni-paderborn.de     131.234.2.42    pub/aminet/    ALL
  2719.        Germany      ftp.uni-stuttgart.de     129.69.18.15    aminet/       4500
  2720.        Germany      ftp.uni-erlangen.de      131.188.3.2     pub/aminet/   7000
  2721.        Germany      ftp.cs.tu-berlin.de      130.149.17.7    pub/aminet/   4000
  2722.        Germany      ftp.tu-chemnitz.de       192.108.33.193  pub/aminet/   4000
  2723.        Germany      ftp.fh-augsburg.de       141.82.16.242   pub/aminet/
  2724.        Germany      ftp.uni-bremen.de        134.102.228.2   pub/aminet/
  2725.        Germany      ftp.uni-oldenburg.de     134.106.40.9    pub/aminet/   2500
  2726.        Germany      ftp.uni-kl.de            131.246.9.95    pub/aminet/   1500
  2727.        Germany      ftp.uni-trier.de         136.199.8.81    pub/aminet/
  2728.        Germany      ftp.uni-siegen.de        141.99.128.1    pub/aminet/   1500
  2729.        Germany      ftp.informatik.rwth-aachen.de 137.226.225.3  pub/aminet/
  2730.        Germany      ftp.stud.fh-heilbronn.de 141.7.1.41      pub/aminet/    600
  2731.        Germany      ftp.rz.uni-wuerzburg.de  132.187.1.2     pub/aminet/    700
  2732.        France       ftp.cnam.fr              163.173.128.15  pub/aminet/
  2733.        Portugal     ftp.ci.ua.pt             193.136.80.6    pub/aminet/
  2734.        UK           ftp.doc.ic.ac.uk         155.198.1.40    pub/aminet/    ALL
  2735.        UK           micros.hensa.ac.uk       148.88.8.84     pub/aminet/   8500
  2736.      All these mirrors have a directory `/pub/aminet', where you will find
  2737.   much stuff. Please use a mirror close to you! Some other important hosts
  2738.   are
  2739.        ftp.funet.fi             (Finland)
  2740.        ftp.isca.uiowa.edu       (USA)
  2741.        ftp.hawaii.edu           (USA)
  2742.        ftp.cso.uiuc.edu         (USA)
  2743.        ftp.dfv.rwth-aachen.de   (Germany)
  2744.      Note that grind, aachen and erlangen have the full collection of Fish
  2745.   disks available! See Fish disk xxx.  If you don't find a specific file
  2746.   on your local mirror, try `ftp.wustl.edu', `ftp.uni-paderborn.de' or
  2747.   `ftp.doc.ic.ac.uk'; they keep all files.
  2748.   
  2749.      To connect to a special host (ftp.uni-erlangen.de for example), you
  2750.   should type
  2751.        ftp ftp.uni-erlangen.de
  2752.   
  2753.   The host answers by requesting your login. You should type
  2754.        ftp
  2755.   
  2756.   No you are asked for a password. Please type your Email address here, if
  2757.   you have one. If not, use the password ftp.
  2758.   
  2759.      Now you're inside the host. There is a number of commands you may
  2760.   execute here. The most important are:
  2761.   *?*
  2762.        Prints the help text of the FTP command. Additionally you may type
  2763.        *? command* to get information on a special command.
  2764.   
  2765.   *bin*
  2766.        Tells the FTP program that you whish to transfer binary files. It
  2767.        is always a good choice to type bin as the very first command!
  2768.        Files you load without the bin command can be corrupt.
  2769.   
  2770.   *get <file>*
  2771.        Loads the given file from the host. On most Unix machines you can
  2772.        type something like `get file.txt -' or `get file.txt |more' to
  2773.        show a text on the screen. Note that there *must not* be any blank
  2774.        between the | and the word more!
  2775.   
  2776.   *mget <pat>*
  2777.        Loads the given files. pat may contain Unix style like wildcards.
  2778.   
  2779.   *put <file>*
  2780.   *mput <pat>*
  2781.        Like get and mget, but transfer files from you to the remote host.
  2782.        This is in most cases not allowed, except for a special directory
  2783.        called `incoming'. You can place files here which you want to make
  2784.        public.
  2785.   
  2786.   *cd <dir>*
  2787.        Like the usual cd command. The commands get, mget, put, mput, dir
  2788.        and ls refer to the current working directory.
  2789.   
  2790.   *dir [<dir>]*
  2791.   *ls [<dir>]*
  2792.        Like `list' and `dir' on the Amiga. Note that the FTP-dir
  2793.        corresponds to the Amiga-list!
  2794.   
  2795.   *bye*
  2796.        Leaves the FTP program.
  2797.   
  2798.      When you have used FTP for the first times you will notice, that you
  2799.   always begin with executing the same steps:
  2800.     1. Type the login (ftp in most cases)
  2801.   
  2802.     2. Type the password (your mail address in most cases)
  2803.   
  2804.     3. Enter the bin command
  2805.   
  2806.     4. Change the current working directory (`/pub/aminet' for example)
  2807.           This may get executed automatically. What you need is a file
  2808.   called `.netrc' in your home directory. Note that it needs to be
  2809.   protected against others! The FTP program doesn't use it, if it can be
  2810.   read by anything else than you. (Protection is set using the command
  2811.   `chmod go-rwx .netrc'.) The .netrc file contains some entries for your
  2812.   most favourite FTP sites, each separated by empy lines. A typicel entry
  2813.   may look like this:
  2814.        machine ftp.uni-erlangen.de
  2815.        login ftp
  2816.        password <your mail address> or <ftp>
  2817.        macdef init
  2818.            bin
  2819.            cd pub/aminet
  2820.      Note that on some machines it is possible to use the machine name
  2821.   `default' which meets all machines not listed in .netrc.
  2822.   
  2823.   9.4 Getting files from a Mail server
  2824.   ====================================
  2825.   
  2826.      Another way to get files is to use a mail server. This assumes that
  2827.   you can send mail to Internet addresses and get mail from Internet
  2828.   hosts. It works by sending a mail to the server specifying some
  2829.   commands, for example send commands for the files you want. Important
  2830.   mail servers are
  2831.        ftpmail@decwrl.dec.com
  2832.        mailserver@nic.funet.fi
  2833.        mailserver@leo.org
  2834.        mrcserv@janus.mtroyal.ab.ca
  2835.        mail-server@ftp.cs.tu-berlin.de
  2836.        mail-server@rtfm.mit.edu
  2837.        ftp-mail@uni-paderborn.de
  2838.   
  2839.   The most important commands are:
  2840.   *Help*
  2841.        Tells the server that you wish to get an Ascii file containing
  2842.        detailed explanation how to use the server.
  2843.   
  2844.   *Limit <number>*
  2845.        Specifys that you wish to get not more than <number> Kbytes per
  2846.        mail.  Larger files get splitted into small pieces of at most
  2847.        <number> Kbytes which are sent as separate mails each. Note that
  2848.        the mails may get larger because of overhead.
  2849.   
  2850.   *Cwd <dir>*
  2851.        Sets the current working directory to <dir>. This directory is
  2852.        used by the commands send and dir.
  2853.   
  2854.   *Index*
  2855.        will return a list of files and/or directories that the server
  2856.        offers. Note that this may be *very* large!
  2857.   
  2858.   *Index <item>*
  2859.        returns a list of files containing <item> in their names.
  2860.   
  2861.   *Dir [<dir>]*
  2862.        returns a list of the files and directories in the given directory.
  2863.   
  2864.   *Send <file1> <file2> ... <fileN>*
  2865.        Tells the server to send the given files to you.
  2866.   
  2867.   *Begin*
  2868.        Tells the server to ignore all lines above this command.
  2869.   
  2870.   *End*
  2871.        Like Begin, but specifies to ignore the lines below. (A signature
  2872.        for example!) A typical session would be to send the following
  2873.   mail to the mail server:
  2874.        BEGIN
  2875.        CD /pub/aminet/util/arc
  2876.        SEND LhA_e138.run
  2877.        END
  2878.   
  2879.   9.5 Getting files from a mailbox
  2880.   ================================
  2881.   
  2882.      You also can get files from one of the many BBS's (`Bulletin Board
  2883.   System').  Most of these are driven by private users, so there is
  2884.   nearly everywhere a mailbox which doesn't cause a too expensive
  2885.   telephone bill.
  2886.   
  2887.      I want to publish a list of all Amiga mailboxes here.  So please
  2888.   send to me a list of all mailboxes which are related to the Amiga - in
  2889.   any way.  I need all telephone numbers of the boxes and their name.
  2890.   Tell me the nation where the box resides and - if possible - some more
  2891.   info (Does the box have Aminet or the Fish PD or FRAS?  Is the box
  2892.   especially for Amiga users?)
  2893.   
  2894.      Thanks, Ignaz Kellerer
  2895.   
  2896.      For a list of mailboxes in Germany or Austria or Switzerland, look
  2897.   at the German version of the AmigaFAQ.
  2898.   
  2899.   9.6 The Fish PD series
  2900.   ======================
  2901.   
  2902.      A very good source is the Fish PD series. One distinguishes between
  2903.   the floppy disks and the CD-Roms.
  2904.   
  2905.   9.6.1 The Amiga Library disks
  2906.   -----------------------------
  2907.   
  2908.      Fred Fish has started in the middle eighties to collect freely
  2909.   distributable software on floppy disks. There are 1000 disks and very
  2910.   much good stuff on it.  Most Amiga dealers sell them and most magazines
  2911.   contain addresses of people mailing them to you for about 3$ per disk
  2912.   or less.  Fred Fish has terminated offering software on floppy disks.
  2913.   Instead, there is a dealer who offers the new software from the CD-Roms
  2914.   on floppy disks.
  2915.   
  2916.      There are some things which can be found on the Fish disks, but not
  2917.   on Aminet.  However, you can get them with FTP. See Fish disk xxx.
  2918.   
  2919.   9.6.2 The Fresh Fish CD-Roms
  2920.   ----------------------------
  2921.   
  2922.      Fred Fish is going on to offer freely distributable software. But
  2923.   now he collects it on CD-Rom's. He releases two different kinds of CD's:
  2924.     1. Monthly released disks are divided into roughly three sections:
  2925.          1. New material, which includes the material from the new
  2926.             unreleased floppy disks as well as material which does not
  2927.             appear in the floppy distribution, about 84Mb on the first
  2928.             disk.
  2929.   
  2930.          2. Useful utilities that can be used directly off the CD-ROM if
  2931.             desired, thus freeing up the corresponding amount of hard
  2932.             disk space (GNU Emacs, Gnu C, GNU C++, Amiga E, PasTeX,
  2933.             AmigaGuide, Installer, 2.0 and 3.0-Includes, different
  2934.             archivers, tape drivers, the AmiCDROM filesystem and many
  2935.             other GNU and BSD tools, ...), about 150Mb on the first disk.
  2936.   
  2937.          3. Older material from previous released floppy disks or
  2938.             CD-ROM's, about 404 Mb on the first disk. (Fish disk 600-910)
  2939.   
  2940.     2. Disks containing the latest software as well as recent software in
  2941.        packed format only. (These are intended to be used for example in
  2942.        BBS's.)
  2943.           I recommend especially the first kind of Fish CD's. They cost
  2944.   about 20$ plus 3$ for shipping (5$ outside USA/Canada/Mexico) and are
  2945.   available from
  2946.   
  2947.        Amiga Library Services
  2948.        610 N. Alma School Road, Suite 18
  2949.        Chandler, AZ 85224-3687
  2950.        U.S.A.
  2951.        
  2952.        Phone/FAX: (602) 917-0917
  2953.   
  2954.   9.7 How do I Read and write MS-Dos disks?
  2955.   =========================================
  2956.   
  2957.      No problem for owners of Workbench 2.1 or higher: The program
  2958.   CrossDos is part of the Workbench. All you have to do is mounting the
  2959.   device `pc0:' by putting it into the drawer `Devs:DOSDrivers' or by
  2960.   double-clicking the icon in `Sys:Storage/DOSDrivers'. Ms-Dos disks in
  2961.   drive `df0:' can now be handled in the usual manner replacing the word
  2962.   `df0:' by `pc0:'. For example the directory can be shown with the
  2963.   command dir pc0:.
  2964.   
  2965.      People still running Workbench 2.0 or lower need a program called
  2966.   `MSH'.  You will find this on the Aminet (directory misc/emu) and on
  2967.   Fish disk 382.  See Sources. After editing the file `devs:MountList' as
  2968.   described in the documentation you have to say Mount msh: in the CLI
  2969.   and can now do the same as above replacing the word `pc0:' with `msh:'.
  2970.   
  2971.   9.8 How do I split large files?
  2972.   ===============================
  2973.   
  2974.      There are some archives which are too large to fit on one disk. To
  2975.   transfer them on disks you need to split them into smaller pieces and
  2976.   transfer each part on a separate disk. I recommend Martin Schlodder's
  2977.   `Splitter'.  (Aminet, `util/misc/splitter_121.lha'. The archive
  2978.   contains binaries for MS-DOS and should be compilable without problems
  2979.   on any Unix system.
  2980.   
  2981.   9.9 Discussing things
  2982.   =====================
  2983.   
  2984.      A mailing list is a server that allows to discuss special things via
  2985.   Email. The server holds a list of people that are interested in the
  2986.   respective topic. For example, the gcc mailing list will discuss bugs,
  2987.   new features and other problems of gcc. (see Compilers) If a mail is
  2988.   sent to the server from someone he will forward this mail to all the
  2989.   other people on the list.
  2990.   
  2991.      You will be added to the list by sending a mail to the server which
  2992.   will usually contain the word `Subscribe' or something similar. Once you
  2993.   are no more interested in the mailing list you can unsubscribe.
  2994.   
  2995.      Unforunately the servers have a different syntax of subscribing and
  2996.   unsubscribing. The best way to find how to subscribe is to send a mail
  2997.   with the word `Help' to the server. He will reply a mail which should
  2998.   explain how to handle this special server.
  2999.   
  3000.      Some mailing lists are:
  3001.        Topic           Server
  3002.        
  3003.        Amok            listserv@amokle.stgt.sub.org
  3004.        Dice            dice-request@castrov.cuc.ab.ca         or
  3005.                        dice-request@hactar.hanse.de (Germany)
  3006.        gcc             listserv@lists.funet.fi
  3007.        Lisp            amigalisp@contessa.phone.net
  3008.        Mui             mui-request@taloa.unice.fr
  3009.        Oberon-A        oberon-a-request@wossname.apana.org.au
  3010.   
  3011.   9.10 Other FAQ's
  3012.   ================
  3013.   
  3014.      This is not the only FAQ, of course. Lots of FAQ's are available
  3015.   either by being posted to newsgroups or by access via FTP.
  3016.   
  3017.   *German Amiga-FAQ*
  3018.        This is the german translation of the AmigaFAQ you are reading.
  3019.        Newsgroups: de.comp.sys.amiga.misc,
  3020.        zer.z-netz.rechner.amiga.allgemein HTML:
  3021.        `http://www.leo.org/archiv/amiga/misc/amigafaq/' Aminet:
  3022.        `docs/misc/AmigaFAQg.lha' Maintainer: Ignaz Kellerer,
  3023.        kellerer@informatik.tu-muenchen.de
  3024.   
  3025.   *Amiga related books FAQ*
  3026.        This is a list of books for the Amiga, including short discussions,
  3027.        prices and sources. Newsgroups: comp.sys.amiga.misc,
  3028.        comp.sys.amiga.introduction, comp.sys.amiga.programmer (monthly)
  3029.        HTML: `http://eksl-www.cs.umass.edu/~atkin/amiga/books.faq.html'
  3030.        Ftp: rtfm.mit.edu, `pub/usenet/comp.sys.amiga.misc'.  Maintainer:
  3031.        Marc Atkin, atkin@cs.umass.edu
  3032.   
  3033.   *AmiTCP/IP FAQ*
  3034.        This is for users of AmiTCP/IP, a set of programs which allows to
  3035.        include an Amiga into a TCP/IP network. (Most well known nets,
  3036.        Internet for example use TCP/IP.) Newsgroups: comp.sys.amiga.misc,
  3037.        comp.sys.amiga.datacomm, comp.sys.amiga.networking (biweekly) Ftp:
  3038.        rtfm.mit.edu, pub/usenet/comp.sys.amiga.networking Maintainer:
  3039.        Neil J. McRae (atcpfaq@domino.demon.co.uk)
  3040.   
  3041.   *Amiga Networking FAQ*
  3042.        Unlike the AmiTCP/IP FAQ this one wants to cover all aspects of
  3043.        networking, including TCP/IP and Envoy.  Newsgroups:
  3044.        comp.sys.amiga.datacomm, comp.sys.amiga.hardware Ftp:
  3045.        rtfm.mit.edu, pub/usenet/comp.sys.amiga.networking Maintainer:
  3046.        Richard Norman (norman@afas.msfc.nasa.gov)
  3047.   
  3048.   *Point Manager FAQ*
  3049.        Networking seems to be quite a problem: This FAQ os for Point
  3050.        Manager, a FidoNet-client (so-called points).  Newsgroups:
  3051.        comp.sys.amiga.datacomm Ftp: rtfm.mit.edu,
  3052.        pub/usenet/comp.sys.amiga.datacomm Maintainer: Eric Krieger
  3053.        (pm_faq@quasar.hacktic.nl)
  3054.   
  3055.   *All about FTP*
  3056.        Explains the usage of the file transfer program FTP. See FTP.
  3057.        Newsgroups: comp.sys.amiga.misc (monthly) Ftp: Aminet, info/start
  3058.        Betreuer: Urban Dominik Mueller (umueller@amiga.icu.net.ch)
  3059.   
  3060.   The Amiga-FAQ archive
  3061.   *********************
  3062.   
  3063.      The Amiga-FAQ is available in different formats: Ascii format (which
  3064.   is posted to the nets) AmigaGuide format (which is the adequate format
  3065.   on the Amiga) and in dvi format (to be printed). Additionally there is
  3066.   some stuff, that might be useful or interesting, but could not be
  3067.   included into the Amiga-FAQ:
  3068.        txt/amiga.history       On the Amiga's history
  3069.        txt/story.txt           The Commodore story (or: the Tramiel
  3070.                                story ;-)
  3071.        txt/amiga.newsgroups    Overview on comp.sys.amiga.*
  3072.        txt/amiga.sites         List of FTP sites
  3073.        txt/AmigaOverview.tex   A short overview on the Amiga-Soft- and
  3074.                                Hardware
  3075.        txt/Hardware.tips       For those people who can't live without solder
  3076.        src/JWSplit.c           The source of a file splitter
  3077.        src/JWJoin.c            The opponent to JWSplit
  3078.        src/addtoc.c            Utility to add a toc to texinfo-created docs
  3079.                                (this document uses it)
  3080.        programmers/*           Some stuff for programmers: pragmas, vararg
  3081.                                versions of some tag functions and some
  3082.                                amiga.lib functions (HookEntry, DoMethod)
  3083.   
  3084.      I decided to collect these in the Amiga-FAQ archive. It is called
  3085.   AmigaFAQ.lha and can be found on Aminet, directory `docs/misc'.
  3086.   
  3087.   Contributions
  3088.   *************
  3089.   
  3090.      This FAQ can neither get useful nor hit further development without
  3091.   your help. Suggestions, contributions, new answers, critics, anything
  3092.   is rather welcome.
  3093.   
  3094.      Please note, that very major subjects are absolutely missing yet:
  3095.   Nothing about sound, nothing on graphic cards, no Animation. These are
  3096.   some of the Amiga's best points! But I don't know them ... :-(
  3097.   
  3098.      So grab your keyboard (Your pencil? Well, if there's no other way...)
  3099.   and send mail to:
  3100.   
  3101.              Ignaz Kellerer
  3102.              Georg-Habel-Str. 11
  3103.        81241 Munich (Germany)
  3104.              Tel. (+49) 089 / 885147
  3105.        
  3106.              Internet: kellerer@informatik.tu-muenchen.de
  3107.   
  3108.   Credits
  3109.   *******
  3110.   
  3111.      My thanks go to:
  3112.   *Reinhard Spisser and Sebastiano Vigna*
  3113.        for the Amiga version of texinfo. This is written with it.
  3114.   
  3115.   *The Free Software Foundation*
  3116.        for the original version of texinfo and many other excellent
  3117.        programs.
  3118.   
  3119.   *Dylan McNamee*
  3120.        for contributing the sections on Editors, Word Processors, DTP and
  3121.        Postscript and some wording fixes.
  3122.   
  3123.   *Joseph Luk*
  3124.        for help in the section on chunky/planar, double buffering and
  3125.        PAL/NTSC
  3126.   
  3127.   *Urban Dominik Mueller*
  3128.        for the FAQ on FTP and Mail-servers.
  3129.   
  3130.   *Lars Hecking (lhecking@nmrc.ucc.ie)*
  3131.   *Philippe Brand (phb@colombo.telesys-innov.fr)*
  3132.        for the complete gcc part
  3133.   
  3134.   *Jochen Wiedmann (zrawi01@decap2.zdv.uni-tuebingen.de)*
  3135.        for the composition and posting of the Amiga FAQ until July 1994.
  3136.   
  3137.   Index
  3138.   *****
  3139.   
  3140.   
  3141.   
  3142.    . (replacement)                        Dot-Replacement
  3143.    .arj                                   Endings
  3144.    .dms                                   Endings
  3145.    .gz                                    Endings
  3146.    .lha                                   Endings
  3147.    .lzh                                   Endings
  3148.    .netrc                                 FTP
  3149.    .sfx                                   Endings
  3150.    .tar                                   Endings
  3151.    .z                                     Endings
  3152.    .Z                                     Endings
  3153.    .zip                                   Endings
  3154.    .zom                                   Endings
  3155.    .zoo                                   Endings
  3156.    68EC020                                68EC0xx
  3157.    68EC030                                68EC0xx
  3158.    68LC040                                68EC0xx
  3159.    A1200 (HD)                             A1200-HD
  3160.    AmiBooksFAQ                            FAQs
  3161.    Amiga Library disks                    Fish floppy disks
  3162.    Amiga networking FAQ                   FAQs
  3163.    Amiga-FAQ archive                      Amiga-FAQ Archive
  3164.    AmigaBasic                             AmigaBasic
  3165.    AmigaSciSchool                         Infos
  3166.    Aminet                                 FTP
  3167.    AmiTCP/IP FAQ                          FAQs
  3168.    Anonymous                              FTP
  3169.    ANS                                    Japanese
  3170.    ARexx                                  ARexx
  3171.    Assemblers                             Compilers
  3172.    AutoDocs                               Includes
  3173.    Basic                                  Compilers
  3174.    BBS                                    Mailbox
  3175.    C                                      Compilers
  3176.    C++                                    Compilers
  3177.    C-program (gcc)                        Compiling
  3178.    Catalog description                    Localizing
  3179.    Catalog translation                    Localizing
  3180.    Catalogs                               Localizing
  3181.    CatComp                                Localizing
  3182.    CATS                                   CATS
  3183.    Chunky displays                        Chunky vs. Planar
  3184.    Commodore, Frankfurt                   Developer
  3185.    Commodore, West Chester                CATS
  3186.    comp.sys.amiga.reviews                 Reviews
  3187.    Compilers                              Compilers
  3188.    Console window                         WindowPtr
  3189.    Contributions                          Contributions
  3190.    Credits                                Credits
  3191.    CrossDos                               MS-Dos disks
  3192.    Current directory                      Dot-Replacement
  3193.    DaggeX                                 X11
  3194.    Desktop Publishing                     DTP
  3195.    Developer                              Developer
  3196.    DoMethod                               Missing functions
  3197.    DoSuperMethod                          Missing functions
  3198.    Doublebuffering                        Doublebuffering
  3199.    DTP                                    DTP
  3200.    Editors                                Editors
  3201.    Emulators                              Emulators
  3202.    endings                                Endings
  3203.    Enforcer                               68EC0xx
  3204.    Esc sequences                          Printer control
  3205.    FAQ's, others                          FAQs
  3206.    FD-files                               Pragmas
  3207.    fd2pragma                              Pragmas
  3208.    file endings                           Endings
  3209.    Fish CD-Rom                            Fish CD
  3210.    Fish disks                             Fish disk xxx
  3211.    Fish floppy disks                      Fish floppy disks
  3212.    Fish PD                                Fish
  3213.    FishCon                                Infos
  3214.    FishXref                               Infos
  3215.    FlexCat                                Localizing
  3216.    Forth                                  Compilers
  3217.    Fortran                                Compilers
  3218.    FPU                                    FPU
  3219.    Fresh Fish CD-Rom                      Fish CD
  3220.    FTP servers                            FTP
  3221.    GadTools                               MUI
  3222.    Gcc                                    The GNU C compiler
  3223.    gcc-amiga-libraries                    Amiga Libraries
  3224.    gcc-authors                            Authors
  3225.    gcc-compiling                          Compiling
  3226.    gcc-current                            Current Version
  3227.    gcc-how-to-get-help                    How to get help
  3228.    gcc-inline-headers                     Inline Headers
  3229.    gcc-installation                       Installation
  3230.    gcc-requirements                       Requirements
  3231.    gcc-sources                            Sources for Gcc
  3232.    GfxBase                                X11
  3233.    GigaMem                                68EC0xx
  3234.    Graphics                               Graphics
  3235.    GUI                                    Workbench
  3236.    Guo Biao                               Chinese
  3237.    HD (A1200)                             A1200-HD
  3238.    HD compression                         HD-Compression
  3239.    Hirsch & Wolf                          CATS
  3240.    history                                Amiga-FAQ Archive
  3241.    HookEntry                              Missing functions
  3242.    HZview                                 Chinese
  3243.    IBM emulator                           IBM-compatibles
  3244.    Icons                                  Icons
  3245.    Includes                               Includes
  3246.    JemTeX                                 Japanese
  3247.    JIStoJi                                Japanese
  3248.    jmore                                  Japanese
  3249.    Kanji                                  Japanese
  3250.    KingFisher                             Infos
  3251.    KitCat                                 Localizing
  3252.    LibAllocPooled                         Missing functions
  3253.    Linux                                  Unix
  3254.    Lisp                                   Compilers
  3255.    locale.library                         Localizing
  3256.    Localizing                             Localizing
  3257.    MagicWB                                Icons
  3258.    Mail-server                            Mail
  3259.    mailbox                                Mailbox
  3260.    Mailing lists                          Mailing lists
  3261.    MakeCat                                Localizing
  3262.    Memory, virtual                        68EC0xx
  3263.    Missing functions                      Missing functions
  3264.    MMU                                    68EC0xx
  3265.    Modula-2                               Compilers
  3266.    Monitors                               Monitors
  3267.    MS-Dos (emulator)                      IBM-compatibles
  3268.    MS-Dos (Syquest)                       MsDos-Syquest
  3269.    MS-Dos disks                           MS-Dos disks
  3270.    Msh                                    MS-Dos disks
  3271.    MUI                                    MUI
  3272.    Multiscan                              Monitors
  3273.    MWB                                    Icons
  3274.    NDA                                    Developer
  3275.    NDK                                    Includes
  3276.    NDU                                    Includes
  3277.    NDUK                                   Includes
  3278.    NetBSD                                 Unix
  3279.    NewIcons                               Icons
  3280.    NTSC                                   PAL-NTSC
  3281.    Oberon                                 Compilers
  3282.    Oberon-A                               Compilers
  3283.    packers                                Endings
  3284.    packers on Unix                        Endings
  3285.    Page Layout Languages                  Word Processors
  3286.    PAL                                    PAL-NTSC
  3287.    Pascal                                 Compilers
  3288.    Pipe (command)                         Pipe command
  3289.    PIPE:                                  Pipe
  3290.    Planar displays                        Chunky vs. Planar
  3291.    Point manager FAQ                      FAQs
  3292.    Postscript                             Postscript
  3293.    pragmas                                Pragmas
  3294.    Printer control                        Printer control
  3295.    Prolog                                 Compilers
  3296.    Queue-handler                          Pipe
  3297.    Reviews                                Reviews
  3298.    RKMs                                   Manuals
  3299.    Rom Kernel manuals                     Manuals
  3300.    Splitting files                        Splitting
  3301.    Stacker                                HD-Compression
  3302.    Syquest                                MsDos-Syquest
  3303.    TeX                                    TeX
  3304.    Text Editors                           Editors
  3305.    Unix                                   Unix
  3306.    Unix-LhA                               Unix-LhA
  3307.    VGA                                    Monitors
  3308.    Word Processors                        Word Processors
  3309.    Workbench                              Workbench
  3310.    Wysiwyg                                Word Processors
  3311.    X11                                    X11
  3312.    XFH                                    HD-Compression
  3313.    XPK                                    HD-Compression
  3314.    _mchar                                 _mchar
  3315.    _pchar                                 Pipe command
  3316.   
  3317.